我为两个环境Gruntfile.js
和development
定义了production
的任务部分。但我不明白,Grunt如何决定使用哪个环境部分。
Gruntfile.js
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
less: {
development: {
options: {
paths: ["public/css"]
},
files: {
"public/css/style.css": "public/css/style.less"
}
},
production: {
options: {
paths: ["public/css"],
plugins: [
],
modifyVars: {
}
},
files: {
"public/css/style.css": "public/css/style.less"
}
}
},
watch: {
css: {
files: 'public/css/*.less',
tasks: ['less'],
options: {
livereload: true,
},
},
}
});
// Load the plugin that provides the "less" task.
grunt.loadNpmTasks('grunt-contrib-less');
// Load the plugin that provides the "watch" task.
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['less', 'watch']);
};
如何让Grunt知道哪个环境目前处于活动状态?
答案 0 :(得分:1)
要替代我建议您创建development
任务并使用grunt development
// Default task(s).
grunt.registerTask('default', ['less:production', 'watch']);
// Development task
grunt.registerTask('development', ['less:development', 'watch']);
答案 1 :(得分:0)
您可以有两个不同的grunt文件,一个用于开发环境,另一个用于生产(例如gruntfile.dev.js
和gruntfile.prod.js
),并通过指定文件指定应将哪个文件视为对应的grunfile
你的npm grunt命令中的名字如下
grunt --gruntfile gruntfile.prod.js
请记住,您可以为dev和prod grunt命令定义两个别名 见下文
"scripts":
{
"build:prod": "grunt --gruntfile gruntfile.prod.js",
"build:dev": "grunt --gruntfile gruntfile.dev.js",
}
所以,通过键入npm run build:prod
,将运行prod gruntfile,并输入npm run build:dev
将运行dev gruntfile。
通过这样做,您可以获得更大的灵活性,并且更容易维护与您的grunt配置相关的更改