webpack如何区分production生产环境和development开发环境?

1,735 阅读1分钟

node有一个特殊内置环境变量:NODE_ENV,可以从process.env.NODE_ENV中读取到。 当运行npm xx的时候,其实是执行了一个sh命令,去运行不同的配置文件,而不同的配置文件都会去指定自己的NODE_ENV,从而区分是生成环境还是开发环境。 例如: 文件结构

在package.json中,scripts配置了不同的命令最终执行的是哪个文件:

如果运行npm run build, 就会找到build/build.js去运行这个文件,文件内容:

由此指定环境变量。 其他命令同理,当你运行 npm start 时,NODE_ENV就是'development' ,当你运行 npm test ,NODE_ENV就是 ‘test’。