从咕噜模板访问过程/环境(Accessing the process / environment f

2019-07-17 11:42发布

我有这正与0.3,但在突破0.4的grunt.js文件中的一些代码:

{
    dest: '<%= process.env.DEST %>/index.html'
}

在0.3过程定义,这样我就可以访问,当我路过如文件路径,以其他插件模板内部的环境中定义的变量。

是否有其他方法来这个将在0.4工作? 还是有办法把一个断点,而模板渲染,这样我可以看到什么变量可用呢?

Answer 1:

默认的数据是配置对象 。 您可以将环境变量添加到配置对象,或直接使用它。

grunt.initConfig({
    destination: process.env.DEST,
    task: {
        target: {
            dest: '<%= destination %>/index.html'
        }
    },
});

要么

grunt.initConfig({
    task: {
        target: {
            dest: process.env.DEST + '/index.html'
        }
    },
});


Answer 2:

这是通过一个的Sindre大直截了当的答案。 或者你可以做(使用咕噜-ENV插件: https://npmjs.org/package/grunt-env ) -

grunt.initConfig({
    env : {
        test : {
            DEST : 'testDEST'
        },
        dev : {
            DEST : 'devDEST'
        },
        qa : {
            DEST : 'qaDEST'
        },
        prod : {
            DEST : 'prodDEST'
        }
    }

});


grunt.registerTask('setenvs', 'Set environment variables', function() {
    grunt.config('ENVS', process.env);
});

然后用

{
    dest: '<%= ENVS.DEST %>/index.html'
}

你的任务是 -

    grunt.registerTask('default', [
        'env:dev',
        'setenvs'
        'yourTask'
    ]);

提出的另一种方法只是让你可以使用<%= ... %> ,你不必硬编码在initConfig。 目标ENV你可以从用户的输入,并把它传递给信封



文章来源: Accessing the process / environment from a grunt template