在 Grunt 插件配置中动态生成映射键
Dynamically generate map key in Grunt plugin config
我在grunt配置中使用以下代码:
const libDir = 'public/lib'
const cssDir = 'public/css'
// Project configuration.
grunt.initConfig({
watch: {
scripts: {
files: '**/*.js',
tasks: ['default'],
},
},
clean: [libDir],
bower_concat: {
all: {
dest: {
'js': libDir + '/vendor.js',
'css': libDir + '/vendor.css'
},
}
},
sass: {
options: {
sourceMap: true
},
dist: {
files: {
'output.css': 'input.scss'
}
}
}
});
如何通过连接cssDir
和一些字符串来动态生成output.css
?
我尝试使用模板,但它忽略了cssDir
.
不会为所有配置属性展开模板,尤其是不会为配置键展开模板。
由于Grunt文件基本上是Javascript程序,因此您可以通过编程方式信任对象:
const cssDir = 'public/css';
var sassFilesMap = {};
// build sass output file mapping programmatically
sassFilesMap[cssDir + "/output.scss"] = "input.scss";
// Project configuration.
grunt.initConfig({
// ...
sass: {
options: {
sourceMap: true
},
dist: {
files: sassFilesMap
}
}
});
如果有多个.scss
文件要转换(要配置),您可以使用如下所示的内容:
const sassMappings = [["edit.scss", "edit.css"], ["public.scss", "public.css"]];
sassMappings.forEach(function(pair) {
// pair[0] is the .scss filename, pair[1] is the .css filename
sassFilesMap[cssDir + "/" + pair[0]] = pair[1];
});
我发现 ES6 支持动态属性键,所以基本上这解决了这个问题,因为我现在可以计算键和值dirVar + 'outputFile': inputDir + 'input.file'
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 在Knockout中扩展动态和映射数据
- 在 Grunt 插件配置中动态生成映射键
- 如何在Struts1中映射和读取我的动态表单条目
- 如何映射输入字段的动态数组
- 通过javascript动态创建图像映射
- 在Meteor中,如何附加应用程序's的根url动态映射到图像路径
- 我想将值动态插入哈希映射
- 映射javascript键与动态变量
- 防止Java Nashorn在动态创建映射时过度使用内存
- 弹性搜索:我如何映射json数据具有动态数量的字段
- 如何基于不是直接1对1映射的元数据动态生成表
- 淘汰映射网格与动态添加项目不行为
- JVector映射如何在标记悬停时生成动态图像
- 动态变化的谷歌用变量映射javascript api
- 如何使用动态数据映射颜色
- 如何使用 jquery 在各自的表单字段中将动态进入设计表的数据单独映射到设计表中
- 在angularjs中动态加载图像映射
- 将动态键映射到Javascript数组中的值
- 动态元素上的jquery.on()事件映射不起作用