nodejs进阶(1)——npm使用技巧和最佳实践 (2)

如:^0.0,表示 >=0.0.0 <0.1.0

可以是0.0.00.0.1,.....,0.0.n

这也意味着当你下次执行 npm install的时候,即使主版本没有更改,次版本或者修订版本发生了改变,你的这个模块会重装,你可以执行下面的命令修改安装包版本规则 npm configsetsave-prefix='~'

这个包前缀的安装规则如下:

~version

大概匹配某个版本

如果minor版本号指定了,那么minor版本号不变,而patch版本号任意

如果minorpatch版本号未指定,那么minorpatch版本号任意

如:~1.1.2,表示>=1.1.2 <1.2.0,可以是1.1.21.1.3,.....,1.1.n

如:~1.1,表示>=1.1.0 <1.2.0

如:~1,表示>=1.0.0<2.0.0

可以是1.0.01.0.1,.....,1.1.n1.2.n,.....,1.n.n

如果你想保存指定的版本号,执行 npm configsetsave-exacttrue

5 锁定依赖

上面已经介绍过了,npm采用语义化的版本号 semver 进行控制,让开发过程中依赖的获取和升级变得非常容易,但不严格的版本号控制,也带来了不确定性

npm建议使用semver版本,但是部分包不遵循semver;

package.json 可以使用精确的版本号控制你的直接依赖包,但第三方依赖的包无法管理;

在开发阶段执行得到的包的版本,和后续部署时得到的可能是不一致的,更不可控的是,你依赖的第三方包也有这样的情况会导致潜在的上线风险。

可以用 npm shrinkwrap解决这个问题,这条命令会生成一个npm-shrinkwrap.json,这个文件里面不仅包含了安装在你机器上的指定版本的包,而且还有包的指定版的依赖包,一旦在项目的根目录下有这个文件,你执行 npm install命令会重新生成一个相同的依赖树

6 检查项目的依赖包有无更新

npm有一个内置的工具方法命令 npm outdated可以检查过时的包,在你项目下运行`npm outdated'即可,但是手动执行检查更新命令就很烦了,有一个可以自动执行包更新检查的工具Greenkeeper,有兴趣的童鞋可以戳进链接了解。

7 开发包

在本地开发npm包的时候,我们可以使用 npm link命令,将npm模块链接到对应的运行项目中去,方便地对模块进行调试和测试

举个例子来说明是什么意思以及怎么使用吧

我们现在有两个项目,分别是npm-link-module和npm-link-test,其中npm-link-module是我们要开发的npm包,npm-link-test用来测试我们开发的包

在npm-link-module下执行 npm init-y生成一个默认的包配置文件package.json,在目录下新建index.js如下,写个简单的日期转换函数

function formateTime(date) {

let year = date.getFullYear();

let month = date.getMonth() + 1;

let day = date.getDay();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxzdp.html