panique / php-sass
每次运行您的应用程序(开发中)时,都会将您的 SASS .scss 文件编译为 .css 文件
Requires
- php: >=5.3.0
- leafo/scssphp: v0.1.1
This package is auto-updated.
Last update: 2024-09-13 22:50:09 UTC
README
自动将 SASS 编译为 CSS(在开发期间,您肯定不会在生产环境中这样做)。每次运行您的应用程序(例如,点击 index.php)时,php-sass 都会自动将您的 scss 文件夹中的所有 .scss 文件编译为 css 文件夹中的 .css 文件。支持 SASS 3.2 版本的特性和混入。棒!您还可以使用 Compass,但您需要手动将 Compass 的旧版本文件(因为最新的 Compass 是为 SASS 3.3 而不是 3.2 设计的)添加到您的 scss 文件夹中。
安装和用法
在您的项目的 composer.json 中添加以下依赖项。如果您不使用 Composer,那么请非常非常非常羞愧地走进角落。然后,站立 2-3 个小时后,观看一些有关如何使用 Composer 的教程,它非常简单,并且是当今 PHP 开发中的最低标准。
请注意,这是一个 require-dev,而不是一个常规的 require。这区分了真实依赖项和您仅用于本地开发的依赖项。
"require-dev": { "panique/php-sass": "1.0" }
通过执行 composer install
或 composer update
安装或更新您的 Composer 依赖项以添加 php-sass。Composer 默认自动安装 require-dev 中的所有内容。
重要:当您稍后部署应用程序且不想安装 require-dev 内容时,请执行 composer install --no-dev
(或 composer update --no-dev
)。
在您的应用程序中,将此行添加到您的 index.php
(或您想编译 SASS 到 CSS 的任何地方)。如果您在常用框架中使用此功能,请确保您在最终应用程序调用之前添加此内容,例如在 Laravel 中添加到 $app->run();
之前(某些框架会执行类似 exit();
或缓存的操作,因此 SASS 编译器永远不会被调用)。
SassCompiler::run("scss/", "css/");
第一个参数是您的 scss 文件夹的相对路径(创建一个),第二个参数是您的 css 文件夹的相对路径。确保 PHP 可以写入 css 文件夹。对于本地开发,一个硬核的 sudo chmod -R 777 public/css
(在 /var/www 中)是完全正常的(记住,SASS 编译仅在本地进行,对于生产环境,您肯定会在生产中部署编译后的 .css 文件)。
要使用 SASS 的最新功能
目前,php-sass 使用 leafo/scssphp 的 v0.1.1 版本(2014 年 8 月)作为编译器。如果您想使用最新功能,可能需要一个更新的版本,请查看这里 https://github.com/leafo/scssphp/releases 并相应地编辑 composer.json。
[可选] 仅在开发中使用,不在生产中使用
要防止在生产环境中使用 SASS 编译器,请使用环境切换。几乎所有的框架都有这样的东西(搜索“YOURFRAMEWORK environment”)。对于原生使用:在您的 Apache vhost 配置中添加一个 SetEnv 变量,具体取决于服务器(开发、测试、生产等)
<VirtualHost *:80>
...
SetEnv APPLICATION_ENV production
...
<VirtualHost/>
然后在 PHP 中这样请求您的环境
if (getenv('APPLICATION_ENV') == 'development') { SassCompiler::run("scss/", "css/"); }
可选功能
SassCompiler::run()
有一个可选的第三个参数,它期望是以下链接中解释的字符串之一 http://leafo.net/scssphp/docs/#output_formatting。这定义了所需的输出。scss_formatter
是 laravel-sass 使用的标准,如果您需要最小化的 CSS 文件,请选择 scss_formatter_compressed
。 scss_formatter_nested
用于嵌套输出,优化了可读性。
@import 的工作方式
从其他文件导入sass规则的工作完美无缺。请确保按照以下方式导入文件:如果文件名为_colors.scss并且位于基本scss文件夹中
@import 'colors';
如果文件名为_colors.scss并且位于基本scss文件夹下的子文件夹modules
中
@import 'modules/colors';
阅读官方文档以获取更多信息。
使用的脚本
此工具使用了优秀的scssphp SASS编译器。scssphp支持最新的SCSS语法(3.2.12)。
其他项目
- https://github.com/panique/huge
- https://github.com/panique/mini2
- https://github.com/panique/mini
- https://github.com/panique/php-long-polling
- 我的博客DEV METAL: http://www.dev-metal.com
许可协议
许可协议为MIT。完全免费用于私人或商业项目。
支持
如果您认为这个脚本很有用,那么请考虑通过在Host1Plus或DigitalOcean租用您的下一个服务器来支持项目。谢谢!