美文网首页
前端项目中的NODE_ENV

前端项目中的NODE_ENV

作者: 8d2855a6c5d0 | 来源:发表于2018-11-15 10:25 被阅读0次

    在很多前端项目中都需要配置node的环境变量,通常在package.json的scripts命令内容和webpack配置文件中可以看到NODE_ENV这个变量,值一般为production或者product,也有人简写为'dev'或'prod'。

    1.NODE_ENV的作用
    通常这个变量用来区分开发与生产环境,加载不同的配置。

    2.配置
    node中有全局变量process表示当前node进程,process.env包含着关于系统环境的信息。但是process.env中并不存在NODE_ENV这个东西,NODE_ENV只是一个用户自定义的变量,当我们在服务启动时配置NODE_ENV,或在代码中给process.env.NODE_ENV赋值,js便能通过process.env.NODE_ENV获取信息。

    通常可以在package.json的scripts里设置

      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "SET NODE_ENV=production  node index.js"
      },
    

    一般也可以在webpack配置文件中对NODE_ENV作默认处理

    NODE_ENV: process.env.NODE_ENV || 'development',
    

    3.不同平台下的设置

    在类unix系统和安装并使用了bash的windows的系统上:

    "EXPORT  NODE_ENV=production && webpack --config build/webpack.config.js"
    

    在windows系统上:

    "SET NODE_ENV=production && webpack --config build/webpack.config.js"
    

    还可以引用第三方插件cross-env,兼容win和linux

      "scripts": {
            "start": "cross-env NODE_ENV=production  node index.js"
      }
    

    需要注意的是使用cross-env中间不能有&&&&这样会划分出前后两个环境,导致后一个语句的环境没有NODE_ENV

    相关文章

      网友评论

          本文标题:前端项目中的NODE_ENV

          本文链接:https://www.haomeiwen.com/subject/vzmefqtx.html