scssphp / scssphp
scssphp 是用 PHP 编写的 SCSS 编译器。
v1.13.0
2024-08-17 21:02 UTC
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.4
- phpunit/phpunit: ^5.7 || ^6.5 || ^7.5 || ^8.3 || ^9.4
- sass/sass-spec: *
- squizlabs/php_codesniffer: ~3.5
- symfony/phpunit-bridge: ^5.1
- thoughtbot/bourbon: ^7.0
- twbs/bootstrap: ~5.0
- twbs/bootstrap4: 4.6.1
- zurb/foundation: ~6.7.0
Suggests
- ext-iconv: Can be used as fallback when ext-mbstring is not available
- ext-mbstring: For best performance, mbstring should be installed as it is faster than ext-iconv
This package is auto-updated.
Last update: 2024-09-17 12:24:12 UTC
README
https://scssphp.github.io/scssphp
scssphp
是用 PHP 编写的 SCSS 编译器。
访问主页https://scssphp.github.io/scssphp,了解如何使用。
运行测试
scssphp
使用 PHPUnit 进行测试。
从根目录运行以下命令以运行所有测试
vendor/bin/phpunit tests
在 tests/
目录中有几个测试
ApiTest.php
包含各种单元测试,用于测试 PHP 接口。ExceptionTest.php
包含测试解析器和编译器抛出的异常的单元测试。FailingTest.php
包含在 Github 问题上报告的测试,展示了兼容性问题。InputTest.php
编译tests/inputs
目录中的所有.scss
文件,然后与tests/outputs
目录中的相应.css
文件进行比较。SassSpecTest.php
从sass/sass-spec
仓库中提取测试。
当更改 tests/inputs
中的任何测试时,由于输出已更改,测试很可能会失败。一旦您确认输出正确,您可以运行以下命令重新构建所有测试
BUILD=1 vendor/bin/phpunit tests
这将编译所有测试,并将结果保存到 tests/outputs
。它还更新了从 sass-spec 排除的规范列表。
要启用完整的 sass-spec
兼容性测试
TEST_SASS_SPEC=1 vendor/bin/phpunit tests
编码标准
scssphp
源代码遵循 PSR12。
从根目录运行以下命令以检查代码的 "sniffs"。
vendor/bin/phpcs --standard=PSR12 --extensions=php bin src tests
静态分析
scssphp
使用 phpstan 进行静态分析。
从根目录运行以下命令以分析代码库
make phpstan
由于代码库的大部分是遗留代码,无法完全进行类型检查,因此设置包含一个基线文件,其中包含我们希望忽略的所有错误。特别是,我们忽略所有与数组中未指定类型相关的错误,这些数组对应于解析器和编译器中 Sass 值和 Sass AST 节点的表示。在贡献时,处理静态分析的正确过程如下
- 在代码库中进行您的更改
- 运行
make phpstan
- 尽可能修复 phpstan 报告的错误
- 重复步骤 2 和 3,直到步骤 3 中没有更多错误得到修复
- 运行
make phpstan-baseline
重新生成 phpstan 基线
将对基线添加进行审查,以避免忽略应该已修复的错误。