之前只是用一直没有注意这个问题,在github上axios的官方安装是:
$ npm install axios
那就等于是安装在dependencies中了,但是我现在的项目中是安装在devDependencies中的,关键是打包后仍然可以正常使用,所以我有点没明白
之前只是用一直没有注意这个问题,在github上axios的官方安装是:
$ npm install axios
那就等于是安装在dependencies中了,但是我现在的项目中是安装在devDependencies中的,关键是打包后仍然可以正常使用,所以我有点没明白
dependencies和devDependencies都是此项目的依赖。
dependences 是项目正常运行所需要的依赖,而devDependencies则是开发者开发时整个项目所需的依赖(如会有一些测试依赖之类的)。
npm install --save * //会下载到node_modules目录中,会修改package.json dependencies会增加
npm install --save-dev **//会下载到node_modules目录中,会修改package.json ,devDependencies会增加
npm install **// 会下载到node_modules目录中,不会修改package.json
npm install //会默认安装两种依赖
npm install * --save //会下载到node_modules目录中,会修改package.json dependencies会增加
27 回答12.8k 阅读
8 回答3.4k 阅读✓ 已解决
6 回答1.1k 阅读✓ 已解决
5 回答5.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.7k 阅读
4 回答2.3k 阅读✓ 已解决
除了字面的含义的区别,
dependencies
和devDependencies
的区别还在于:如果你的项目是发布到
npm
的一个包,那么这个包的
package.json
中的dependencies
中的依赖是会被下载下来到这个包的node_modules
文件夹中的(如果你的项目本身没有这个依赖),而devDependencies
不会。举个例子:
我发布了一个组件
A
,它有dependencies:lodash
和devDependencies:moment
。那么,如果你的项目
npm install
了组件A
。除非你的项目也依赖了
lodash
并且版本一致,那么项目的node_modules/A
下会有一个node_modules
,里面会有lodash
。而
moment
,则无论如何也不会出现在你的项目中。至于一般的项目,不管你是安装在dev还是dependencies中,安装的时候都会安装,打包的时候都会被打进去的,区分依赖只是为了让项目看起来更加清晰。