我想要使用下面的grunt插件来使我包含链接到我的生产版本的压缩文件,并为我的开发版本解压缩。命令行变量不被dev_prod_switch拾取
https://www.npmjs.com/package/grunt-dev-prod-switch
下面是我的Gruntfile的一个非常简化版本: ... grunt.loadNpmTasks( '咕噜-DEV-PROD-开关');
// Project configuration.
grunt.initConfig({
...
dev_prod_switch: {
options: {
environment: 'dev',
env_char: '#',
env_block_dev: 'env:dev',
env_block_prod: 'env:prod'
},
dynamic_mappings: {
files: [{
expand: true,
cwd: 'dist',
src: ['*.html', 'js/includes.js', 'js/includes.min.js'],
dest: 'dist'
}]
}
},
....
// Full distribution task.
grunt.registerTask('dev', ['...', '...', 'dev_prod_switch']);
grunt.registerTask('prod', ['...', '...', '...', 'dev_prod_switch']);
});
在我的HTML文件我使用:
在我includes.js文件:
var path;
/* env:dev */
path = "js/pageScripts/dashboard.js";
/* env:dev:end */
/* env:prod */
path = "js/pageScripts/dashboard.min.js"
/* env:prod:end */
plenty_admin.REST.loadScript(path, function(){
....
});
我触发我的生成使用命令行:
grunt prod --env=prod
或
grunt dev --env=dev
这对如何在“dynamic_mappings”中定义的文件处理没有任何影响,但如果我设置:
environment: 'prod',
我编译之前,将文件处理正确使用prod条件注释我已经在我的html/js文件中设置了。
完美世界是简单地运行:
grunt dev
或
,看到正在处理的输出文件的预期,但加环境变量到底是不是,如果它有问题无法避免。
grunt prod --env=prod
或
grunt dev --env=dev
任何帮助表示赞赏,并高兴,如果需要添加更多的细节 - 我有点节点/咕噜小白我害怕。谢谢。
您是否尝试在'dev_prod_switch'中设置'environment'选项为:'environment:grunt.option('env')|| 'dev','通过CLI接受'grunt prod --env = prod'或'grunt dev --env = dev'。 – RobC
嗨RobC感谢您的提供,但我不确定我完全理解您的建议。我现在可以切换dev_prod_switch的唯一方法是通过手动修改 dev_prod_switch:{ 选项:{ 环境:“开发”, 如果我把它忽略了CLI,例如选项: 咕噜PROD - env = prod 或者我在你的评论中遗漏了一些东西? 谢谢。 – user2115620
尝试用'environment:grunt.option('env')||替换当前读取'environment:'dev','在Gruntfile.js中的代码行。 'dev','然后在CLI中使用'grunt prod --env = prod'或'grunt dev --env = dev'运行命令 – RobC