javascript - nodejs的开发环境和生产环境的问题
天蓬老师
天蓬老师 2017-04-11 11:41:03
[JavaScript讨论组]

嗯...我了解开发环境和生产环境是什么意思..主要是想知道在nodejs下怎么配置就算开发环境怎么配置就算生产环境了,可能说的不太明白..

在用node的时候,常常看网上提到开发环境和生产环境,但是自己这两种环境有什么区别怎么部署一直都不是很清楚。。

比如我的package.json中有dependencies和decDependencies,后者应该是开发环境中加载生产环境中没有得吧,但是比如我在自己本机上也是node index.js 启动 , 扔到服务器上也是node index.js(或者用forever等)

感觉完全没有区别啊。

还有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) to ensure you have the correct code for your production build.

不好意思...问的问题有点小白...希望热心前辈解释一下

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
阿神

你用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 来使代码适应你的生产环节配置。

ringa_lee

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

举个例子:
Vue的开发版本总共有200+kb,而生产版本只有24kb,功能是完全一样的,原因就是开发版本的错误警告和调试信息占据了绝大部分体积。

当然,具体的区别还是要看项目是怎么规划的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号