菜鸟问题:axios到底是装在devDependencies中还是装在dependencies中

之前只是用一直没有注意这个问题,在github上axios的官方安装是:

$ npm install axios

那就等于是安装在dependencies中了,但是我现在的项目中是安装在devDependencies中的,关键是打包后仍然可以正常使用,所以我有点没明白

阅读 11.5k
5 个回答

除了字面的含义的区别,

dependenciesdevDependencies的区别还在于:

如果你的项目是发布到npm的一个包
那么这个包的package.json中的dependencies中的依赖是会被下载下来到这个包的node_modules文件夹中的(如果你的项目本身没有这个依赖),而devDependencies不会。

举个例子:
我发布了一个组件A,它有dependencies:lodashdevDependencies:moment
那么,如果你的项目npm install 了组件A
除非你的项目也依赖了lodash并且版本一致,那么项目的node_modules/A下会有一个node_modules,里面会有lodash
moment,则无论如何也不会出现在你的项目中。

至于一般的项目,不管你是安装在dev还是dependencies中,安装的时候都会安装,打包的时候都会被打进去的,区分依赖只是为了让项目看起来更加清晰。

因为npm i会安装所有的依赖,后面加-P-D才会指定安装生产或开发依赖。

当然axios肯定是生产依赖了

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会增加

看名字就知道啦.. 一个是开发依赖 一个是生产依赖..你说打包了还能用,可以看看build之后的源文件,能找到相应的源码吗

打包的时候,只要有引入,如果不做其它配置,都会打包进去吧,有引入axios ,就会打包进去,当然可以正常使用

具体可以看下这个 npm- 开发与生产环境

推荐问题
宣传栏