dev_prod_switch未获取命令行变量

用户名

我正在尝试使用以下grunt插件使我能够使用包括链接到我的生产版本的压缩文件,以及未压缩的我的开发版本的链接。

https://www.npmjs.com/package/grunt-dev-prod-switch

下面是我的Gruntfile的非常简短的版本:... grunt.loadNpmTasks('grunt-dev-prod-switch');

    // 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',

在编译之前,将使用我在html / js文件中设置的条件条件注释正确处理文件。

完美的世界将是简单地运行:

grunt dev

或者

grunt prod

并查看按预期方式处理的输出文件,但是如果无法避免的话,将环境变量添加到末尾并不是问题。

grunt prod --env=prod

或者

grunt dev --env=dev

任何帮助表示赞赏,并乐意在必要时添加更多详细信息-恐怕我有点节点/咕unt声。谢谢。

罗伯

根据在文档中找到的示例...

更改options对象,如下所示:

options: {
    environment: grunt.option('env') || 'dev', // <-- Change value to this !
    env_char: '#',
    env_block_dev: 'env:dev',
    env_block_prod: 'env:prod'
}

注意:这将根据通过CLI提供的标志来设置选项。当该值设置为时'dev'如上面的代码所示),这意味着dev它将成为没有提供选项标志时使用的默认值更多信息可以在grunt.options中找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章