问题
项目中使用yarn install,只安装了在dependency中的依赖
知识
devDependencies 和 dependencies区别
- 
devDependencies:
指的是项目开发过程中所需要的模块
- 
安装时机:
只有当前的环境变量值是 `develpoment`: 才会安装devDependencies中的依赖- 没有设置环境变量的时候: 环境变量是
develpoment 
 - 没有设置环境变量的时候: 环境变量是
 
 - 
 - 
dependencies
指的是项目运行所依赖的模块
- 
安装时机:
不论当前环境变量是什么,dependencies中的依赖都会被安装 
 - 
 Note:项目中必须严格区分不同dependency的安装方式
dependency安装方式混乱对项目影响
- 
导致不同环境安装的包不全
举个例子:
- 部署项目到production,设置此时的环境变量
NODE_ENV:production - 此时进行
yarn install会安装package.json:dependencies中的依赖 - 但是项目的某个文件中
import {dev-tool} from 'devDependency'import了一个安装在devDependencies中的依赖 - 此时打包,webpack会将import的所有3rd party都打包到一个chunk中,但是直接报错,因为当前只安装了dependencies中的依赖,找不到此时import的devTool了
 
 - 部署项目到production,设置此时的环境变量
 
使用包管理器根据不同的环境变量安装不同依赖的方式
- 
yarn
使用yarn install可以安装项目中的依赖
- 没有设置环境变量,或者
export NODE_ENV=(除了production以外的任何环境变量值)
- 安装devDependency和dependency - 设置
export NODE_ENV=production或者执行yarn install --production/yarn install --prod/yarn install --production=true- 安装dependency
 
 
 - 没有设置环境变量,或者
 假设当前的
NODE_ENV=prodcution如何才能既安装devDependency也安装dependency?
- 执行yarn install --production=false