我是Grunt的新手,所以这可能是一个简单的问题,但我真的对此感到困惑……
我打算在"package.json“中声明我的所有文件,而在grunt中只需导入它们。如下所示:
// package.json
{
"config": {
"files": {
"css": ["../assets/css/main.scss", "../assets/css/plugins.scss"]
}
},
"dependencies": {
"grunt": "~0.4.5",
"grunt-contrib-sass": "~0.8.1"
}
}
// grunt.js
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dev: {
options: { style: 'compressed', noCache: true },
files: { '../assets/min/min.css': '<%= pkg.config.files.css %>' }
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.registerTask('default', ['sass:dev']);
};我说源文件是空的。但是如果我只声明一个文件,它就能正常工作。
而如果我直接在"grunt.js“中声明它们...
// grunt.js
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
sass: {
dev: {
options: { style: 'compressed', noCache: true },
files: { '../assets/min/min.css': ["../assets/css/main.scss", "../assets/css/plugins.scss"] }
}
}
});
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.registerTask('default', ['sass:dev']);
};谁能告诉我第一个是怎么工作的?
谢谢:)
发布于 2015-01-31 00:14:17
问题是,通过将pkg.config.files.css粘贴到模板中,它可能会将其串化。尝试直接传入变量:
// Wrong
'<%= pkg.config.files.css %>'
// Right
pkg.config.files.css这样,Grunt就会像您所期望的那样传入数组。
编辑:
如果这不起作用,here's an alternative way to access package.json.虽然上面是有效的JS,但它可能对Grunt无效,因为如果grunt.file.readJSON异步运行,它将是undefined,直到它完成,这将是在grunt已经初始化配置对象之后。因此,grunt返回并在数据可用时插入数据。
https://stackoverflow.com/questions/28239900
复制相似问题