0

我在使用 lessphp(以及在 rails 或 python/django 中编译较少)时遇到的一个总是令人讨厌的问题是,它只查看要编译的文件,而不是导入的文件。

例如,我的 less 结构看起来像这样:

// main.less 
// (compiled to styles.css)
@import "variables"
@import "objects"
@import "theme"

.

// theme.less 
// (actual styles)
body { background:#efefef }

所以实际编译的文件只是导入我正在处理的样式和文件的根目录。每次我对我的样式(theme.less)进行更改时,我都必须编辑 main.less 以便重新编译。

是否有任何选项可以像在客户端编译(less.js)上那样检查所有文件的更改?

4

1 回答 1

0

当您检查 php lessc 编译器的源代码时,可以在https://raw.githubusercontent.com/oyejorge/less.php/master/bin/lessc找到,您会发现该脚本仅评估修改时间您作为参数传递的 Less 文件。

当你的文件更少时,/home/project/less你可以在 bin/less 的 while(1) 循环中添加以下代码,大约在第 125 行:

while (1) {
    clearstatcache();
//keep original code here
$dir = '/home/project/less';
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    if(preg_match('/\.less$/',$filename) && filemtime($filename) > $lastAction)
    {
       $updated = true;
       break;
    }
}
if($updated) break;
}
于 2014-10-17T22:15:01.777 回答