dependencies和devDependencies的实际区别
1.正常理解
从一开始接触npm,dependencies和devDependencies的区别仅仅是字面上的理解,总是认为
- "dependencies":生产中所需的包。
- "devDependencies": 本地开发和测试的包。
2.实际作用
- 如果是正常公司项目,其实安装在dependencies和devDependencies没有区别。正常项目打包后,devDependencies生产也正常打包。
- 如果是发布npm包,安装使用时,devDependencies是不会进行安装。
例如: 自己发布包yinuo-random-str,依赖lodash和开发依赖nanoid。引入依赖使用,node_modules中只安装了lodash。 如果npm包使用了nanoid,就需要将包放入dependencies,而不是devDependencies,否则出现使用报错。
2.对比npm、yarn、pnpm安装
以koa为例子
npm install
yarn
pnpm install
都不会将项目的依赖中的开发依赖安装进去
peerDependencies安装规则
- npm 会默认安装
- yarn 不会安装
- pnpm 会放在.pnpm下