包管理工具详解(三)

192 阅读2分钟

依赖的版本管理

我们会发现安装的依赖版本出现:^2.0.3或~2.0.3,这是什么意思呢?

npm的包通常需要遵从semver版本规范:

semver:semver.org/lang/zh-CN/

pnpm semver:docs.npmjs.com/misc/semver

semver版本规范是X.Y.Z:

X主版本号(major):当你做了不兼容的 API 修改(可能不兼容之前的版本);

Y次版本号(minor):当你做了向下兼容的功能性新增(新功能增加,但是兼容之前的版本);

Z修订号(patch):当你做了向下兼容的问题修正(没有新功能,修复了之前版本的bug);

这里解释一下 ^和~的区别:

^x.y.z:表示x是保持不变的,y和z永远安装最新的版本;

~x.y.z:表示x和y保持不变的,z永远安装最新的版本;

常见属性

engines属性

engines属性用于指定Node和NPM的版本号;

在安装的过程中,会先检查对应的引擎版本,如果不符合就会报错;

事实上也可以指定所在的操作系统 "os" : [ "darwin", "linux" ],只是很少用到;

browserslist属性

用于配置打包后的JavaScript浏览器的兼容情况,参考;

否则我们需要手动的添加polyfills来让支持某些语法;

也就是说它是为webpack等打包工具服务的一个属性(这里不是详细讲解webpack等工具的工作原理,所以不

再给出详情)

npm install 命令

安装npm包分两种情况:

全局安装(global install): npm install webpack -g;

项目(局部)安装(local install): npm install webpack

全局安装

全局安装是直接将某个包安装到全局:

比如yarn的全局安装:

npm install webpack -g

但是很多人对全局安装有一些误会:

通常使用npm全局安装的包都是一些工具包:yarn、webpack等;

并不是类似于 axios、express、koa等库文件;

所以全局安装了之后并不能让我们在所有的项目中使用 axios等库;

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情