所以在我的配置文件中,我正在静态定义要观看的css文件,以及一些html部分。 (最终我将与排除项目进行微型对比..我现在只是第一次通过)
最初我将这些存储在grunt配置对象中,但是很难获得我想要的输出,所以我把它们从initConfig方法移到了包装函数中:
原始传递:
grunt.initConfig({
cssFiles: [ ... list of files ... ],
htmlFiles: [ ... list of files ...],
watch: {
reload: {
files: ['<%= cssFiles.concat(htmlFiles).join(",") %>']
}
}
});
我尝试了几种变体(有和没有连接),作为一个例子。
当前“工作”版本:
module.exports = function(grunt) {
var cssFiles = ['someFile.css',...'lastFile.css'],
htmlFiles = [ ... ];
grunt.initConfig({
watch: {
reload: {
files: cssFiles.concat(cshtmlFiles)
}
}
});
};
我觉得我应该能够做到这一点,而不必将我的阵列移出咕噜声配置(虽然我不知道为什么我觉得他们应该留在那里......我想我只是没见过很多Gruntfile的代码在initconfig之外)
答案 0 :(得分:0)
我正在使用一个系统,在单个配置对象中存储我需要的所有路径,如下所示:
grunt.initConfig({
pathTo: {
distcss : './dist/css/master.css',
srcstyles : './lib/styles/**/*.scss',
vendor : './lib/vendor'
},
// tasks...
});
然后,我通过下划线模板加载那些,就像你的第一个例子。如果您的项目结构良好,那么通常只有一个迷你匹配模式就足够了。我的所有CSS最终都在lib/styles
,以及任何misc。第三方的东西通常在lib/vendor
,因为它是通过Bower管理的。
使用正确的目录结构和模式,您不需要大量的路径。示例JavaScript项目可能如下所示:
lib
└── src
├── app
└── tests
然后,您的迷你匹配模式将您的应用程序和测试代码添加到lib/src/**/*.js
,例如。
但对你有用的东西对你有用;如果你写了一个你满意的系统,无论你是否在其他地方看过它,都没有理由改变它。 : - )