NodeJS下的包管理npm的安装、更新和发布
2017年08月15日

npm官方教程

很详细,看一遍就懂了:

https://docs.npmjs.com/getting-started/what-is-npm


package.json属性的详细说明:

https://docs.npmjs.com/files/package.json


临时使用淘宝镜像:

npm xxxxxxx --registry=https://registry.npm.taobao.org


npm 关于 --save-dev 和 --save 的区别

--save 会把依赖包 添加到 package.json 文件 dependencies 键下;
--save-dev 则添加到 package.json 文件 devDependencies 键下


yarn安装并使用淘宝源:

cnpm install -g yarn

....

> yarn config get registry

https://registry.yarnpkg.com

> yarn config set registry https://registry.npm.taobao.org

yarn config v1.7.0

success Set "registry" to "https://registry.npm.taobao.org".

Done in 0.06s.



1、npm更新已安装的包

首先,检查更新:

$ cnpm install -g npm-check-updates

# 查看更新

$ ncu -g

# 结果如下

 @vue/cli  3.0.0-rc.2  →  3.0.0-rc.3

 webpack       4.12.0  →      4.15.0

然后更新 webpack,即重新安装就行了:

$ cnpm install -g webpack


在项目下更新模块:

1、方式一,检查并自动更新

# 查看哪些需要更新

$ ncu

# 执行更新,更新所有包

$ ncu -a

2、方式二,手动更新版本

手动修改package.json里的版本号,然后执行

$ npm update

或者

$ npm update <指定模块>

或者

$ npm update <指定模块@指定版本>

$ npm update webpack@2.3.3

# 重新安装,最新版本

$ npm install webpack@latest -S


注意,这种手动更新的方式,package.json, package-lock.json等地方都可能要修改,update并不会自动更新这些文件里面的版本号。


2、安装和强制安装

$ npm install <packageName>

安装之前,npm install会先检查,node_modules目录之中是否已经存在指定模块。

如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。


如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f或--force参数。

$ npm install <packageName> --force


3、将 自己写的js 包发布到npm仓库

参见官方教程:

https://docs.npmjs.com/getting-started/publishing-npm-packages


补充几句:

先注册账号,然后登陆:

$ npm login

1)带organization名的模块,发布的时候,如果报错,可以如下:

$ npm publish --access=public

2)发布的时候,给版本指导一个tag,例如beta:

$ npm publish --tag beta

(如果不加tag,默认的tag就是 latest)

npm install <somepkg>的时候,默认用带latest tag版本,如果想安装其他tag的版本,可以如下:

$ npm install <somepkg>@<tag>

3)使用命令行来更新版本号(它最大的好处是和git关联,自动给git打tag并commit)

# patch的意思是最后一位小版本号+1,例如v1.0.0,patch之后就是1.0.1

# -m的作用是在给git打tag的时候,附上commit

$ npm version patch -m "Upgrade"

详细说明参见:https://docs.npmjs.com/cli/version