package.json中dependencies和devDependencies的区别和含义

前端开发中各种包的依赖在package.json中配置,但是会有两层包的管理dependencies和devDependencies,他们各是干什么的,有什么区别

安装依赖的三种方式

  • npm install
  • npm install –save
  • npm install –save-dev

使用npm install将依赖模块安装到项目,但不写package.json(不推荐,这样最终需要手动添加);使用npm install --save将模块安装到项目,写入的package.json的dependencies中;使用npm install --save-dev将模块安装到本地,写入package.json的devDependencies中。

正确使用姿势

那么我们如何知道哪些是在生产环境中需要,哪些是在开发环境中需要呢?

生产环境只需要我们能正常运行该项目所需要的模块, 比如vue,vue-router,express,jQuery等等这些,项目没有这些依赖会出错

开发环境就是开发阶段,我们所做的单元测试,webpack,gulp,supervisor等这些工具,都只是在开发阶段需要,一旦项目投入需要便不再需要。

使用npm install 默认安装dependencies和devDependencies中的模块,如果只需要安装生产环境中的模块使用npm install -production

区别

原来devDependencies里面的模块只用于开发环境,不用于生产环境,而 dependencies 是需要发布到生产环境的。那究竟有什么区别呢?工程化为什么需要这两个环境?

开发环境

devDependencies中dev是develop的缩写,表示开发环境,即指开发阶段,对于一些仅在开发阶段需要的模块,项目正式投入后便不再需要的模块,我们选择把它们安装在devDependencies.

前端开发越来越体现工程化改革的姿态,无论是使用工具的进化,还是框架的更新迭代,前端对性能狂热追求伴随着工程化的进步也在不断提高,必然导致开发环境的多种多样,不可避免的导致开发环境的臃肿

生产环境

生产环境也就是真是真实环境,是线上用户接触的产生环境,因为开发环境的臃肿,不能直接用于生产环境,我们需要对环境可以优化的部分进行优化。

评论

还没有评论...留下你的评论!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Sidebar