phpmx/scss

scssphp 是用 PHP 编写的 SCSS 编译器。

1.0 2024-09-03 18:46 UTC

This package is auto-updated.

Last update: 2024-09-03 18:46:49 UTC


README

https://scssphp.github.io/scssphp

Build License

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.phpsass/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 节点的表示时。当贡献时,处理静态分析的正确过程如下

  1. 在代码库中进行更改
  2. 运行 make phpstan
  3. 尽可能修复 phpstan 报告的错误
  4. 重复步骤 2 和 3,直到在第 3 步中不再有任何错误被修复
  5. 运行 make phpstan-baseline 以重新生成 phpstan 基线

基线中的添加将被审查,以避免忽略应该修复的错误。