npm install 的时候会安装哪个里面的依赖?dependencies 还是 devDependencies
【npm install
默认会安装 dependencies 字段和 devDependencies 字段中的所有模块】。 如果软件包具有 package-lock 或 shrinkwrap 文件,则依赖项的安装将由此驱动,如果两个文件都存在,则 npm-shrinkwrap.json 优先。 请参阅 package-lock.json 和 npm-shrinkwrap。
【ok,那么也就是说,当我们在拿到一个项目的时候,使用 npm install
是会安装 dependencies 和 devDependencies 里所有的依赖包的。】
那么是否意味着,我们在安装依赖包的时候,不需要过多的去纠结是使用 -S
还是 -D
呢 ?随便安装到 dependencies 或者 devDependencies 里都行,反正 npm install
的时候,都会安装 dependencies 和 devDependencies 里面的依赖。
其实不然!
如果使用 --production 参数,可以只安装 dependencies 字段的模块。
$ npm install --production
或者
$ NODE_ENV=production npm install
【所以,我们做好 dependencies 和 devDependencies 的区分的话,在使用 npm install --production
的时候,还是有区别的。】
不过,感觉这个 npm install --production
的使用场景不是很多。我好像没怎么用,可能以后会用到吧。
内心os:既然 npm install --production
我用不到,那我在安装依赖包的时候,还是随意吧,放到 dependencies 或者 devDependencies 都无所谓,反正 npm install
的时候会把 dependencies 和 devDependencies 里面的依赖包都安装下来。哈哈~~,随意使用 -S
或者 -D
咯~
错!
错!!
错!!!
这样想就错了。dependencies 和 devDependencies 还是有明显区别的。我们接着来看。
我们在安装依赖包的时候,要如何区分是安装到 dependencies 还是 devDependencies 中呢?
dependencies 依赖
这个可以说是我们 npm 核心一项内容,依赖管理,这个对象里面的内容就是我们这个项目所依赖的 js 模块包。下面这段代码表示我们依赖了 markdown-it
这个包,版本是 ^8.1.0
,代表最小依赖版本是 8.1.0
,如果这个包有更新,那么当我们使用 npm install
命令的时候,npm 会帮我们下载最新的包。当别人引用我们这个包的时候,包内的依赖包也会被下载下来。
“dependencies”: {
“markdown-it”: “^8.1.0”
}
devDependencies 开发依赖
【在我们开发的时候会用到的一些包,只是在开发环境中需要用到,但是在别人引用我们包的时候,不会用到这些内容,放在 devDependencies 的包,在别人引用的时候不会被 npm 下载】。
“devDependencies”: {
“autoprefixer”: “^6.4.0”,0",
“babel-preset-es2015”: “^6.0.0”,
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
React
-
介绍一下react
-
React单项数据流
-
react生命周期函数和react组件的生命周期
-
react和Vue的原理,区别,亮点,作用
-
reactJs的组件交流
-
有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢
-
项目里用到了react,为什么要选择react,react有哪些好处
-
怎么获取真正的dom
-
选择react的原因
-
react的生命周期函数
-
setState之后的流程
-
react高阶组件知道吗?
-
React的jsx,函数式编程
-
react的组件是通过什么去判断是否刷新的
-
如何配置React-Router
-
路由的动态加载模块
-
Redux中间件是什么东西,接受几个参数
-
redux请求中间件如何处理并发
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
如何配置React-Router
-
路由的动态加载模块
-
Redux中间件是什么东西,接受几个参数
-
redux请求中间件如何处理并发