在PHP中将多个SCSS文件编译成一个CSS文件

4
我尝试使用以下脚本编译我的SCSS文件:

use Leafo\ScssPhp\Compiler;
...
$scss = new Compiler();
$scss->addImportPath('/home/vagrant/Code/myapp/storage/app/scss/');
$cssContent = $scss->compile('@import "style.scss";');

文件style.scss的内容如下:
////
/// Main Stylesheet
/// this file holds includes all files for the stylesheet
////

// a cleaner way to to breakpoints/media queries
// @source
//  http://breakpoint-sass.com/
@import "breakpoint-sass/stylesheets/breakpoint";


// Helpful mixins
// @source
//  http://bourbon.io/docs/
@import "bourbon/app/assets/stylesheets/bourbon";

// set default variables
@import "generic/variables/*";
// override default variables and set custom variables
@import "custom/generic/variables/*";

// generic - do not customize this files!
// files are generic and can be updated from base theme
@import "generic/*";
@import "vendor/**/*";
@import "objects/**/*";

// run through stuff in source folders, just patternlab stuff
@import "../source/**/*.scss";

// custom modifications
@import "custom/**/*";

编译后的CSS如下所示:
@import "breakpoint-sass/stylesheets/breakpoint";
@import "bourbon/app/assets/stylesheets/bourbon";
@import "generic/variables/*";
@import "custom/generic/variables/*";
@import "generic/*";
@import "vendor/**/*";
@import "objects/**/*";
@import "../source/**/*.scss";
@import "custom/**/*";

所以,编译器只编译了style.scss文件,但没有导入应该导入的任何文件。
我尝试手动添加所有导入,例如:
$cssContent .= $scss->compile('@import "bourbon/app/assets/stylesheets/bourbon";');
$cssContent .= $scss->compile('@import "generic/variables/*";');

但它只添加以下两行CSS代码:
@import "bourbon/app/assets/stylesheets/bourbon";
@import "generic/variables/*";

1
显然,你的工具只编译scss到css,你需要使用另一个工具来聚合生成的css文件。个人而言,我使用gulp来完成这两个任务,但它是用JS而不是PHP实现的。 - teeyo
通常我也使用gulp,但在这种情况下,我需要在服务器上编译SASS,而在那里不允许安装gulp... - Antonín Slejška
我需要编译SASS。缩小或混淆工具对我没有帮助。我将尝试:https://github.com/sensational/sassphp - Antonín Slejška
虽然我提到的工具叫做Minify,但是如果您看过它在Github页面上的介绍,它其实是一个JS和CSS资源的HTTP服务器。它会压缩和合并文件,并使用适当的标头进行服务,从而允许条件GET或长期Expires。 - teeyo
是的,我知道,但我开发了一个函数,可以在我们内部应用程序中为模板编译SASS,然后自动提交到GitLab。目的是使我们的开发更加高效... - Antonín Slejška
显示剩余2条评论
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接