phpmx / scss
scssphp 是用 PHP 编写的 SCSS 编译器。
1.0
2024-09-03 18:46 UTC
Requires
- php: >=8.1
- ext-ctype: *
- ext-json: *
- league/uri: ^7.4
- league/uri-interfaces: ^7.4
- symfony/filesystem: ^5.4 || ^6.0 || ^7.0
- symfony/polyfill-mbstring: ^1.30
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.4
- phpunit/phpunit: ^9.5.6
- sass/sass-spec: *
- squizlabs/php_codesniffer: ~3.5
- symfony/phpunit-bridge: ^5.1
- symfony/var-dumper: ^6.3
- thoughtbot/bourbon: ^7.0
- twbs/bootstrap: ~5.0
- twbs/bootstrap4: 4.6.1
- zurb/foundation: ~6.7.0
Suggests
- ext-mbstring: For best performance, mbstring should be installed as it is faster than the polyfill
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 基线
基线中的添加将被审查,以避免忽略应该修复的错误。