将 Grunt 输出指定到动态并行文件夹
Specifying Grunt output to a dynamic parallel folder
背景
我是 Grunt 的新手,正在尝试通过修改 meanjs boilerplate to support stylus 来学习一些东西,我想按照当前meanjs 默认值。
问题
我有以下文件结构:
- 应用程序
- 配置
- public
- 模块
- 富
- 资产
- 样式表
...
- css
...
...
如何使用 Grunt 获取 public/modules/*/assets/stylesheets
目录中的 Stylus .styl 文件,并将它们编译到 public/modules/*/css
目录?
天真的尝试:
下面是一个示例尝试,并没有走得太远。
手写笔:{
编译:{
文件:[{
dest: '../../css',
来源:'public/modules/*/assets/stylesheets/*.styl',
ext: '.css',
展开:真
}]
}
}
这导致:File ../../css/public/modules/foo/assets/stylesheets/baz.css created.
如果我将 "dest" 留空,它会正确编译,但输出位于 assets/stylesheets 文件夹中(如预期的那样)。我确定有一种干净的方法可以做到这一点,但我还不知道。
设置 src、dest、cwd 以及使用 grunt 的隐藏重命名选项应该会获得所需格式的手写笔文件。
示例:
stylus: {
compile: {
options: {
compress: true
},
files: [{
cwd: 'public/modules',
dest: 'public/modules',
src: ['*/assets/stylesheets/*.styl'],
expand: true,
rename: function(dest, src) {
var path = require('path');
var module = src.split(path.sep).slice(0,1)[0];
return path.join(dest, module + '/css/' + module + '.css');
}
}]
}
},
背景
我是 Grunt 的新手,正在尝试通过修改 meanjs boilerplate to support stylus 来学习一些东西,我想按照当前meanjs 默认值。
问题
我有以下文件结构:
- 应用程序 - 配置 - public - 模块 - 富 - 资产 - 样式表 ... - css ... ...
如何使用 Grunt 获取 public/modules/*/assets/stylesheets
目录中的 Stylus .styl 文件,并将它们编译到 public/modules/*/css
目录?
天真的尝试:
下面是一个示例尝试,并没有走得太远。
手写笔:{ 编译:{ 文件:[{ dest: '../../css', 来源:'public/modules/*/assets/stylesheets/*.styl', ext: '.css', 展开:真 }] } }
这导致:File ../../css/public/modules/foo/assets/stylesheets/baz.css created.
如果我将 "dest" 留空,它会正确编译,但输出位于 assets/stylesheets 文件夹中(如预期的那样)。我确定有一种干净的方法可以做到这一点,但我还不知道。
设置 src、dest、cwd 以及使用 grunt 的隐藏重命名选项应该会获得所需格式的手写笔文件。
示例:
stylus: {
compile: {
options: {
compress: true
},
files: [{
cwd: 'public/modules',
dest: 'public/modules',
src: ['*/assets/stylesheets/*.styl'],
expand: true,
rename: function(dest, src) {
var path = require('path');
var module = src.split(path.sep).slice(0,1)[0];
return path.join(dest, module + '/css/' + module + '.css');
}
}]
}
},