腊月的季节

npm版本控制

npm init

使用npm init 初始化一个空项目是一个好的习惯,即使你对package.json及其他属性非常熟悉,npm init 也是你开始写新的Node.js应用或模块的一个快捷的方法。npm init有智能的默认选项,比如从根目录名称推断模块名称,通过~/.npmrc读取你的信息,用你的Git设置来确定repository等等。

npm install

npm install使我们最常用的npm命令之一。因此我们需要好好了解一下这个命令。终端输入npm install -h 查看使用方式
可以看出我们通过npm install可以安装npm上发布的某个版本、某个tag、某个版本区间的模块,甚至可以安装本地目录、压缩包和git/github的库作为依赖。
直接使用npm i安装的模块是不会写入package.json的dependencies,需要额外加个参数:

  • npm i express –save /npm i express -s(安装express,同时将”express”:”^4.14.0”写入dependencies)
  • npm i exoress –save-dev /npm i express -D(安装express,同时将”express”:”^4.14.0”写入devDependencies)
  • npm i express –save –save-exact(安装express,同时将”express”:”^4.14.0”,写入dependencies)
    运行以下命令:
    npm config set save-exact true
    这样每次npm i xxx –save 的时候会锁定依赖的版本号,相当于加了–save-exact参数。

    npm shrinkwrap

    前面说过要锁定依赖的版本,但这并不能完全防止意外情况的发生,因为锁定的只是最外一层的依赖,而里层依赖的模块的package.json有可能写的是”mongoose”:”*”。为了彻底锁定依赖的版本,让你的应用在任何机器上安装的都是同样的版本的模块,通过运行npm shrinkwrap,会在当前目录下产生一个npm-shrinkwrap.json,里面包含了通过node_modules计算出的模块的依赖树及版本。优先执行npm-shrinkwrap.json

热评文章