【问题标题】:why can't I access value NODE_ENV in my server.js file when I have set it gruntfile.js with grunt-env当我使用 grunt-env 设置 gruntfile.js 时,为什么我不能访问 server.js 文件中的值 NODE_ENV
【发布时间】:2014-12-01 23:35:27
【问题描述】:

我正在尝试在我的 gruntfile.js 中使用 env 设置一些选项,以便我可以在我的 server.js 文件中使用基于 NODE_ENV 的 if 语句。

我已经使用“npm grunt-env --save-dev”安装了 grunt-env,并在 gruntfile.js 中包含了和 env 部分:

 grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    env: {
        dev: {
            NODE_ENV : 'development'
        },
        prod: {
            NODE_ENV : 'production'
        }
    },
    ....

我还在文件末尾注册了开发和生产任务

   grunt.registerTask('dev', ['csslint', 'jshint', 'nodeunit', 'sass', 'concurrent', 'nodemon']);
   grunt.registerTask('prod', ['cssmin', 'uglify', 'nodemon']);

当我运行“grunt dev”或“grunt prod”时,服务器会正​​常启动并启动正确的任务,但我仍然无法访问 server.js 文件中的 NODE_ENV 表单。我尝试添加以下内容:

 console.log(process.env.NODE_ENV);

无论我使用“grunt dev”还是“grunt prod”,这都会返回“未定义”

我哪里错了?

【问题讨论】:

    标签: javascript node.js gruntjs


    【解决方案1】:

    在所有订单任务之前添加您的 grunt-env 任务;

    grunt.registerTask('dev', ['env:dev', 'csslint', 'jshint', 'nodeunit', 'sass', 'concurrent', 'nodemon']);
    grunt.registerTask('prod', ['env:prod', 'cssmin', 'uglify', 'nodemon']);
    

    【讨论】:

    • 谢谢!,我遵循的示例中缺少此内容,但现在您指出它似乎很明显。 :)
    猜你喜欢
    • 1970-01-01
    • 2012-05-19
    • 2017-05-17
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-11-19
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多