【问题标题】:command line variable not picked up by dev_prod_switchdev_prod_switch 未拾取命令行变量
【发布时间】:2017-01-17 17:08:20
【问题描述】:

我正在尝试使用以下 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 文件中设置的 prod 条件注释正确处理文件。

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

grunt dev

grunt prod

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

grunt prod --env=prod

grunt dev --env=dev

感谢任何帮助,如有必要,我很乐意添加更多细节 - 我有点害怕我是一个节点/咕噜咕噜的菜鸟。谢谢。

【问题讨论】:

    标签: javascript node.js gruntjs


    【解决方案1】:

    根据docs...中的示例...

    修改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将是时使用的默认值strong> 提供了选项标志。更多信息可以在grunt.options找到。

    【讨论】:

    • 感谢 RobC,再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 2021-11-05
    • 2014-05-14
    • 2012-12-12
    相关资源
    最近更新 更多