我想要使用下面的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