建设包银行官方网站,重庆网站开发解决方案,域名跳转wordpress,网站怎么做站内搜索1. 版本控制npm依赖包使用语义化的版本号#xff0c;让开发者可以从版本号中推测修改。版本号格式为#xff1a;X.Y.ZX#xff1a;代表主版本号#xff0c;只有更新了不向下兼容的API时才需要修改Y#xff1a;次版本号#xff0c;当模块增加了向下兼容的功能时需要修改Z让开发者可以从版本号中推测修改。版本号格式为X.Y.ZX代表主版本号只有更新了不向下兼容的API时才需要修改Y次版本号当模块增加了向下兼容的功能时需要修改Z补丁版本号当模块进行了向下兼容的bug修改时需要修改npm有些符号可以用来限制版本并且不同的符号有不同的更新版本号的规则脱字符^限定了安装版本的主版本号用npm install下的依赖写入package.json中时就是使用的脱字符限定了版本号ajax: ^0.19.0,
ava: ^1.3.1,
babel-loader: ^8.0.5, 当我们执行 npm update packageName时因为使用了脱字符限定了主版本号(其他符号更新时也与符号相关)所以只会更新该大版本号下的次版本号和修订版本号更高的版本。但是有种情况例外当主版本号为0时这种是不稳定的版本所以尽管用脱字符限制但是次版本号一样不会更新只会更新修订版本号 例版本 ^1.2.1可更新的范围是 1.2.1 2.0.0 例当安装了axios的0.1.0的版本执行 npm update axios --ddd (调试查看过程)。 没有更新因为没有大于0.1.0的0.1.x版本波浪号~限定次要版本号例~1.5.1代表可更新范围为1.5.1 1.6.0xX*和空可以替代版本号中的任意一段表示该位置版本号没有限制例x,X,*和空可以匹配任何版本(本地测试安转时会安装最新版本) 1.x可更新范围是 1.0.0 2.0.0无符号指定版本如使用 vue-router: 3.0.7 只会安装这个版本号的依赖npm install会安装满足条件的最新版本。问题如何升级大版本号npm install packageNameY如何降级版本号npm install packageNameoldVersion2. 版本锁定为什么需要锁定依赖的版本在package.json中axios的依赖是 axios: ^0.8.0执行npm install时会安装哪个版本- 安装了版本0.8.1明明在package.json中写的是0.8.0为什么安装的是0.8.1这版本不一样啊- 因为准确的说package.json中写的不是版本0.8.0而是^0.8.0前者是一个确定的版本而后者是一个版本范围。0.8.1是满足这个条件的最新版本。那么问题来了这种依赖安装的方式那我们在本地开发和正式线上前的安装当需要多人协同开发的时候安转的依赖版本有可能不一样。这样可能就会导致一些“我这里是好的本地环境是好的”的奇怪问题。那我们要怎么解决这个问题使地大家都能安装同一个版本的依赖npm在5.0.0但在5.6.x的版本中才稳定下来的版本中增加了package-lock.json文件在此版本和更高的版本中使用npm install时会自动生成此文件。 axios: {version: 0.8.1,resolved: http://registry.npm.oa.com/axios/download/axios-0.8.1.tgz,integrity: sha1-4OrwPNGE5Un3Dt5/cv/gDSiQEU,dev: true,requires: {follow-redirects: 0.0.7}}lock文件中有这个依赖安装的特定版本、下载地址、验证模块完整性的hash以及它的依赖列表。当项目中有package-lock.json文件时会根据此文件安装版本。使用npm更新依赖则package-lock.json文件会被更新package.json文件可能会更新有时候不会比如上面的axios的更新补丁版本号。那如果我手动修改了package.json文件它和lock文件不一致了会怎么样- 如果是在package.json中增加或删除了依赖npm install后会同步增加和删除- 如果是对版本号进行了修改 1. 如果修改后的版本不是之前范围中符号固定不变的部分则lock中的会跟着修改。 如图我将package.json中的axios由0.8.0改为了0.7.0将vue-router由3.0.7改为了2.0.0之前固定的部分是0.8之前固定的部分时3 2. 如果修改后的版本没有影响之前固定不变的部分lock文件不会修改 如图我将package.json中的element-ui由2.10.1改为了2.9.1lock文件中的并没有改变因为它的版本依旧是满足依赖的新范围此时不一定是最新范围。所以在依赖降级时要注意直接修改package.json中的版本号可能行不通。当我们安装依赖时版本不对可能会删掉package-lock和node_modules重新npm install。这种方式可能会导致之前锁定的版本被更新。比如以前的lock锁定了2.10.1但是之后出来了2.10.2重新install时会安装后一个版本。3. package.json中的依赖分类1dependencies 项目运行时的依赖2devDependencies: 项目开发时的依赖。 线上环境可以使用npm install --production忽 略开发依赖。3peerDependencies: 项目当前依赖所在的宿主环境所需要安装的依赖和版本 例如element-ui的peerDependencies中有vue。如果安装element-ul没有安装vuenpm就会警告。参考文章2018 年了你还是只会 npm install 吗juejin.im前端工程化5你所需要的npm知识储备都在这了 - 掘金juejin.im