package.json相关疑惑总结
语义版本控制(node-semver)
X.Y.Z,主要版本X,次要版本Y,补丁Z
X:代表一个破坏兼容性的大变化;
Y:表示不会破坏任何内容的新功能;
Z:表示不会破坏任何内容的错误修复;
package.json中版本控制
"express":"^4.15.4"——表示至少应该使用版本4.15.4,但任何高于此版本的版本都可以,只要它们具有相同的主要版本(4.x.x)。PS:如果大版本号为0,则^与~相同,因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。
"express":"~4.15.4"——表示安装时不能改变主要版本和次要版本号(4.15.x)。
"express":"4.15.4"——表示安装的指定版本号(4.15.4)。
"express":"latest"——表示安装最新版本。
package-lock.json(npm 5.x.x新增,可禁用)优先级迭代
npm 5.0.x:不管package.json怎么变,npm install 时都会根据package-lock.json文件下载;
npm 5.1.x:npm install 会无视package-lock.json文件,去下载最新的包;
npm 5.4.2后:如果改了package.json,且package.json和package-lock.json文件不同,那么npm install 时npm会根据package中的版本号以及语义含义去下载最新的包,并更新至lock。如果两者是同一状态,那么npm install 都会根据lock下载,不会理会package实际包的版本是否有更新。
package-lock.json中各参数含义
"@hui-pro/empty": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-D2egR6O4AeJh31PAr0KIyJJsciQ=",
"requires": {
"@hui-pro/locale": "^1.1.0",
"@hui-pro/theme": "^1.1.0",
"@hui-pro/utils": "^1.1.0"
},
"dependencies": {
"@hui-pro/locale": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-ZzHcgwh/q5CqslQadrXzhzQc7vQ=",
"requires": {
"deepmerge": "^1.5.2"
}
},
"@hui-pro/theme": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-+buQbn8OnWU32dIdNg6v9g6cUrU=",
"requires": {
"sass": "^1.19.0",
"sass-loader": "^7.1.0"
}
},
"@hui-pro/utils": {
"version": "1.1.0",
"resolved": "http://...",
"integrity": "sha1-V862xMe+H5G751C3CpT3bGIFr1k=",
"requires": {
"h-jsencrypt": "^1.0.1",
"moment": "^2.24.0",
"qs": "^6.5.2",
"resize-observer-polyfill": "^1.5.1"
}
}
}
}
version:应安装的特定版本;
resolved:模块的位置(URI);
integrity:验证模块完整性的哈希;
requires:它依赖的包列表;
dependencies:依赖包详情列表;
参考资料
https://segmentfault.com/a/1190000017239545
package.json相关疑惑总结的更多相关文章
- vue.js的package.json相关问题解惑
使用vue-cli创建vue.webpack项目,在项目中用到了iSlider移动端滑动插件,只在本地命令工具中npm install islider.js:提交之后,partner下载代码后一直运行 ...
- angularjs webstorm 单元测试 Package.json
Package.json小结 生成package.json 定位到想放置package.json的目录,运行npm init,根据提示就可以生成package.json文件,其中test comman ...
- 常用的package.json以及React相关
常用的package.json以及React相关 前言 package.json 的简单介绍 简单版的 package.json 必备属性(name & version) name 字段 ve ...
- webpack打包时修改package.json的版本号,并输出相关版本
可直接修改的方式 { plugins: [ function() { // 修改package.json中的版本号 this.plugin('done', function() { const pkg ...
- npm package.json属性详解
概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...
- npm中package.json详解
通常我们使用npm init命令来创建一个npm程序时,会自动生成一个package.json文件.package.json文件会描述这个NPM包的所有相关信息,包括作者.简介.包依赖.构建等信息,格 ...
- 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目
自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...
- 伙计,给我来一杯package.json!不加糖
前言:夜深了,我熬了一锅热气腾腾的package.json,给大家端上来,希望大家喜欢 json和JS对象的区别 package.json,顾名思义,它是一个json文件,而不能写入JS对象. 所以我 ...
- ABP vue+asp.net core yarn serve报 Cannot find module 'typescript/package.json错误
abp的前端在node install 安装完成了相关的依赖包,直接yarn serve运行相关服务的时候报"Cannot find module 'typescript/package.j ...
随机推荐
- [poj1811]Prime Test(Pollard-Rho大整数分解)
问题描述:素性测试兼质因子分解 解题关键:pollard-rho质因数分解,在RSA的破译中也起到了很大的作用 期望复杂度:$O({n^{\frac{1}{4}}})$ #include<cst ...
- WPF TabControl SelectionChanged 重复执行的问题
很邪门的问题,我曾经都感觉是微软的bug了. 问题是这样的:在我的tabcontrol下的tabitem中有一个combobox控件,由于一些原因,需要执行tabcontrol的SelectionCh ...
- phpcms换域名细节
修改/caches/configs/system.php里面所有和域名有关的,把以前的老域名修改为新域名. 进入后台设置-->站点管理,对相应的站点的域名修改为新域名. 点击后台右上角的&quo ...
- Eclipse简介和使用
常用快捷键 快捷键的配置,常用快捷键: 内容提示: Alt + / 例如: System.out.println(); 语句 ,syso再按住alt 和/ 就会补全. 忘记某个类如何书写,可以写出一部 ...
- linux 下消息队列发送后没有信息
在使用消息队列时,调用 #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...
- 二十五种网页加速方法和seo优化技巧
一.使用良好的结构 可扩展 HTML (XHTML) 具有许多优势,但是其缺点也很明显.XHTML 可能使您的页面更加符合标准,但是它大量使用标记(强制性的 <start> 和 <e ...
- oracle查看表,索引,视图,存储过程的定义
通过 DBMS_METADATA 包 Oracle 的在线文档,对这个包有详细说明: DBMS_METADATA 通过该dbms_metadata包的get_ddl()方法,我们可以查看表,索引, ...
- android fragment ontouch 事件
由于fragment是存在于activity之中的,所以触摸事件会被activity首先得到. 为了在fragment中执行ontouch方法,需要做如下处理: mFragment = new Tab ...
- hdu 3037 费马小定理+逆元除法取模+Lucas定理
组合数学推推推最后,推得要求C(n+m,m)%p 其中n,m小于10^9,p小于1^5 用Lucas定理求(Lucas定理求nm较大时的组合数) 因为p数据较小可以直接阶乘打表求逆元 求逆元时,由费马 ...
- Manacher's Algorithm 马拉车算法(最长回文串)
这个马拉车算法Manacher‘s Algorithm是用来查找一个字符串的最长回文子串的线性方法,由一个叫Manacher的人在1975年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性,这 ...