npm 基础
npm help <command>
命令会显示 npm
的 man page,内容非常详细。
安装 / 卸载包
安装全局包:
$ [sudo] npm install -g <package_name>
$ # Example:
$ sudo npm install -g http-server
/usr/bin/http-server -> /usr/lib/node_modules/http-server/bin/http-server
/usr/bin/hs -> /usr/lib/node_modules/http-server/bin/http-server
/usr/lib
└── http-server@0.9.0
但好的实践是,不要 在 /usr/lib/node_modules/
下安装东西,防止跟 pacman 安装的某些包冲突。可以这样做:
npm config set prefix "${HOME}/.local"
- 在
~/.zshrc
中增加${HOME}/.local
到PATH
安装本地包:
$ npm install <package_name>
卸载软件包:
$ npm remove [-g] <package_name>
更新包
你可以用 npm outdated
命令查看哪些包不是最新的:
- 对于全局环境,它会检查全部全局包是不是最新的
- 对于本地项目环境,它会在 package.json 限定的范围内检查包是不是最新的
- 比如 package.json 定义了库 A 的版本应该是 14.x.x,那么假如库 A 的最新版本是 15.x.x,
npm outdated
也只会显示 14.x.x 中的最新版本
- 比如 package.json 定义了库 A 的版本应该是 14.x.x,那么假如库 A 的最新版本是 15.x.x,
更新单个包:
$ npm install [-g] <pacakge_name>
更新全部包:
$ npm update [-g]
package.json
参考 官方文档。
一个 package.json 至少包含 name
, version
字段。可以用 npm init --yes
来创建一个最简的 package.json
,用 npm init
交互式地创建一个详细 package.json
。
dependencies
与 devDependencies
分别表示运行时 / 开发时的依赖,在开发阶段时,你可以用 npm install <pacakge_name> --save/--save-dev
来向这两个字段增加一个新的包。当你拿到一份其他的人源码,你进去它的目录中 npm install
时,默认会把 dependencies
跟 devDependencies
中的包都安装进去,除非你给 npm install
指定了 --production
选项,或者 NODE_ENV
环境变量为 production
。
同理,删除包后如果想要它也在 package.json 中被删除:npm uninstall --save/--save-dev <package_name>
。
scripts
中有一些脚本有 alias,比如 npm start
运行的是 scripts
中的 start
脚本;npm test
同理。
查看已安装的包
$ npm ls [-g]
$ npm ls [-g] --depth=0
$ npm ll [-g]
淘宝镜像
设置 register
配置以使用淘宝镜像:
$ sudo npm config -g set registry "https://registry.npm.taobao.org/"
设置全局配置,使得 npm install
时,无论装本地包还是全局包都使用这个镜像。