claudioldf/php-sass

每次运行应用程序(开发中)时,都会编译您的 SASS .scss 文件到 .css - 从 panique/php-sass 分支出来

v2.0 2016-01-18 17:51 UTC

This package is not auto-updated.

Last update: 2024-09-18 18:17:31 UTC


README

***** 此项目是从 panique/php-sass 分支出来的 *****

我主要做的更改

  • 现在您可以在第二个参数中传递一个文件,这样脚本将所有内容合并到一个文件中。
  • 脚本还会在递归文件夹中搜索
  • 当第二个参数是文件夹目标时,脚本将保留原始源文件夹 (.scss) 的镜像,但格式为 .css。

使用示例

function load_sass($assets, $target_file) {
	if (getenv('ENV') != 'production') {
		foreach($assets as $index => $file) {
			$file_append = ($index==0) ? false : true;
			SassCompiler::run($file, $target_file, "scss_formatter_compressed", $file_append);
		}
		return $target_file;
	} else {
		return $target_file;
	}
 }
 
 load_sass(
 	[
		"assets/scss/styles1.scss",
		"assets/scss/styles2.scss",
		...
	],
	"assets/css/style-join-all.css"
 );

php-sass

自动 SASS 到 CSS 编译(在开发中,您肯定不会在生产环境中这样做)。每次运行您的应用程序(例如,点击 index.php)时,php-sass 都会自动编译您的 scss 文件夹中的所有 .scss 文件到 css 文件夹中的 .css 文件。支持 SASS 3.2 版本的功能(scss 语法)和混合。太棒了!您还可以使用 Compass,但您需要手动将 Compass 的较旧版本文件(因为最新的 Compass 是为 SASS 3.3 而不是 3.2 而设计的)添加到您的 scss 文件夹中。

安装和用法

在您的项目 composer.json 中添加以下依赖项。如果您不使用 Composer,那么请走到角落里,非常非常非常羞愧。然后,在那里站上 2-3 个小时,看看如何使用 Composer 的教程,它非常简单,并且是目前 PHP 开发中的常见最低标准。

"require": {
    "claudioldf/php-sass": "2.0"
}

通过执行 composer installcomposer 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 文件夹。对于本地开发,在 /var/www 中使用 sudo chmod -R 777 public/css(完全没问题,记住,SASS 编译仅在本地发生,对于生产,您肯定会部署编译后的 .css 文件)。

使用 SASS 的最新功能

目前 php-sass 获取 v0.1.1(2014 年 8 月)的 leafo/scssphp 作为编译器。对于最新功能,您可能需要一个更新的版本,所以请查看这里 https://github.com/leafo/scssphp/releases 并相应地编辑 composer.json。

[可选] 适合仅在开发中使用,不用于生产

防止在生产中使用 SASS 编译器,请使用环境切换。几乎所有框架都有类似的东西(在 Google 上搜索“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 中解释的字符串之一。这定义了期望的输出。默认情况下,laravel-sass 使用 scss_formatter,如果您需要压缩的 CSS 文件,请选择 scss_formatter_compressed。为了提高可读性,scss_formatter_nested 用于嵌套输出。

@import 的使用方法

从其他文件导入 Sass 规则的 @import 功能运行良好。请确保按照正确的方式导入文件:如果文件名为 _colors.scss,并且位于基本 scss 文件夹中

@import 'colors';

如果文件名为 _colors.scss,并且位于基本 scss 文件夹的子文件夹 modules

@import 'modules/colors';

阅读官方文档以获取更多信息。

使用的脚本

该工具使用了出色的 scssphp SASS 编译器。scssphp 支持最新的 SCSS 语法(3.2.12)。

许可证

该项目遵循 MIT 许可协议。完全免费用于私人或商业项目。

支持

如果您认为这个脚本很有用,那么请考虑通过在 Host1PlusDigitalOcean 上租赁您的下一个服务器来支持项目。谢谢!