关于npm的使用以及vue项目文件的理解
文章目录
1.–save-dev 和 --save、npm install 区别
–save 会将模块依赖写入dependencies 节点
–save-dev 会将模块依赖写入devDependencies 节点。
devDependencies 作为项目在编程时所用的插件,打包后不会打包进项目
dependencies 是作为项目的依赖,最终会引入到项目中区别在于对项目package.json的修改,npm install不会修改package.json,而后两者会将依赖添加进package.json,后两者的区别请看下文循序渐进。
npm install:
补充:正常使用npm install时,会下载dependencies和devDependencies中的模块,当使用npm install --production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块。
2.package-lock.json 和 package.json 区别
官方文档:这个package-lock.json 是在
npm install
时候生成一份文件,用以记录当前状态下实际安装的各个npm package的具体来源和版本号.
跟package.json的区别在于(举个栗子):
"dependencies": { "@types/node": "^8.0.33", },
这里的^向上尖号是定义向后(新)兼容依赖,如果types/node版本是超过8.0.33,并且是在大版本(8)上相同,就允许下载最新的types/node包。同一个大版本不同版本号之间存在差异,导致依赖库包行为特征有时候不兼容。
所以npm最新的版本就开始自动生成package-lock.json功能,目的就是确保所有库包与你上次安装的完全一样。
package.json文件只能锁定大版本,即版本号的第一位,不能锁定后面的小版本,你每次npm install时候拉取的该大版本下面最新的版本,可能有些童鞋之前就踩过类似的坑。
一般为了稳定性考虑我们不能随意升级依赖包,因为如果换包导致兼容性bug出现很难排查,所以package-lock.json就是来解决包锁定不升级问题的。
如果要升级package-lock.json里面的库包,怎么操作呢?
npm install XXX@x.x.x
3.查看包版本
jquery:为包的名字
第一种方式:使用npm view jquery versions(查看该包所有版本)
这种方式可以查看npm服务器上所有的jquery版本信息;
第二种方式:使用npm view jquery version(查看该包最新版本)
这种方式只能查看jquery的最新的版本是哪一个;
第三种方式:使用npm info jquery(查看该包所有版本—详细内容)
这种方式和第一种类似,也可以查看jquery所有的版本,
但是能查出更多的关于jquery的信息;