nodejs的开发环境和生产环境的问题


nodejs有开发环境和生产环境,在package.json的依赖分别是dependencies和decDependencies,开发环境一般而言会在代码中部署诸多测试用的代码、警告甚至是库。 而生产环境追求的是快速化、最小化,这些东西是没必要放到生产环境中的。

webpack,也特别区分开发环境和生产环境

这样:

cross-env NODE_ENV=production webpack --config ./webpack.config.js

执行了之后还会报错

 
You are currently using minified code outside of NODE_ENV === 'production'. This means that you are running a slower development build of Redux. You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) toensure you have the correct code for your production build.

用node执行js文件的时候先执行一句export NODE_ENV=production
然后再node xxx.js
这样node就会去读取NODE_ENV这个环境变量得到当前的环境时生产环境
对应的,export NODE_ENV=development这样就是开发环境
你可以在js文件里通过:process.env.NODE_ENV来判断当前是生产环境还是开发环境
通常对这两种不同的环境需要有不同的配置以及输出:
比如生产环境使用80端口,开发环境使用3000端口,那就这样写:

var port = 3000; if (process.env.NODE_ENV === "production") port = 80; 

对于package.json中的devDependencies是指开发过程中使用的对项目运行不产生影响只用来部署用的依赖,比如eslint用来检查代码,mocha用来测试,babel用来转化代码等等,这些应该在项目运行前就做好的。

那个报错是说你用了它minify(这个词不知道翻译成什么好,简化? 优化?小化?)好的版本,不是你自己简化的,可能不太适应你的生产环境,它建议你自己做简化,用loose-envify 来使代码适应你的生产环节配置。




免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM