Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用mapper完成任务?_Php_Build Process_Sass_Phing - Fatal编程技术网

Php 用mapper完成任务?

Php 用mapper完成任务?,php,build-process,sass,phing,Php,Build Process,Sass,Phing,有人能给我举个例子,说明如何将Phing的UpdateTask与 制图员?我搞不懂,在网上也找不到任何例子 以下是我正在努力实现的目标。我有一堆我需要的SCSS文件 使用ExecTask和Ruby的SASS解析器转换为CSS。但是,我只是 如果任何源文件已更改,则希望重新生成CSS文件 源SCSS文件位于app/assets/css中,编译后的文件位于 放置在app/webroot/css中。如何使用UpdateTask测试是否有 app/assets/css中的所有文件都比 app/webro

有人能给我举个例子,说明如何将Phing的
UpdateTask
与 制图员?我搞不懂,在网上也找不到任何例子

以下是我正在努力实现的目标。我有一堆我需要的SCSS文件 使用
ExecTask
和Ruby的SASS解析器转换为CSS。但是,我只是 如果任何源文件已更改,则希望重新生成CSS文件

源SCSS文件位于
app/assets/css
中,编译后的文件位于 放置在
app/webroot/css
中。如何使用
UpdateTask
测试是否有
app/assets/css
中的所有文件都比
app/webroot/css

请注意,SASS组合没有到的1对1文件名映射 CSS文件。最终可能会有十几个SCSS文件 编译成3-4个CSS文件。我知道我可以简单地将这些CSS文件硬编码到我的
build.xml
中,但我想创建一个更通用、可重用的构建目标


提前谢谢

我用试错法自己解决了这个问题。我上面描述的场景(测试源目录中的任何文件是否比目标目录中的任何文件都新)无法在
Update
任务中使用映射器实现。
Update
任务只需迭代
文件集
,使用
映射器转换任何文件名,然后将该文件与原始文件进行比较


目前,我正在使用一个文件集,其中包括所有不以下划线开头的文件(包括SASS)和一个简单的映射器,该映射器将
*.scss
全局映射到
*.css
。这是可行的,但并不完美。当只有一个include文件发生更改(以下划线开头的文件)时,Phing将检测不到任何更改,并跳过重建CSS资产。

我通过尝试和错误解决了这个问题。我上面描述的场景(测试源目录中的任何文件是否比目标目录中的任何文件都新)无法在
Update
任务中使用映射器实现。
Update
任务只需迭代
文件集
,使用
映射器转换任何文件名,然后将该文件与原始文件进行比较


目前,我正在使用一个文件集,其中包括所有不以下划线开头的文件(包括SASS)和一个简单的映射器,该映射器将
*.scss
全局映射到
*.css
。这是可行的,但并不完美。当只有一个包含文件发生更改(以下划线开头的文件)时,Phing将不会检测到任何更改并跳过重建CSS资产。

如果您事先知道将存在哪些结果文件,则可以使用标识映射器检查每个源文件是否比单个结果文件更新。对每个结果文件执行此操作,您将知道是否有更改。

如果您事先知道将存在哪些结果文件,则可以使用标识映射器检查每个源文件是否比单个结果文件更新。对每个结果文件执行此操作,您就会知道是否有更改。

我知道。我试图找到一种更通用的方法,这样我就不必仅仅因为添加了一个新的SCSS文件就修改我的构建脚本。我知道。我试图找到一种更通用的方法,这样我就不必仅仅因为添加了一个新的SCSS文件而修改构建脚本。