概述
package.json
The best way to manage locally installed npm packages is to create a package.json file.
A package.json must have:
- “name”
- all lowercase
- one word, no spaces
- dashes and underscores allowed
- “version”
- in the form of x.x.x
- follows semver spec
{
"name": "my-package",
"version": "1.0.0"
}
创建 package.json
npm init
// 创建一个默认的 package.json
npm init -y
package.json 中相关属性如下所示:
- name: 当前目录名称
- version: 总是1.0.0
- dependencies: These packages are required by your application in production.
- devDependencies: These packages are only needed for development and testing.
项目对模块的依赖可以使用下面的 3 种方法来表示(假设当前版本号是 1.1.0 ):
- 兼容模块新发布的补丁版本:~1.1.0、1.1.x、1.1
- 兼容模块新发布的小版本、补丁版本:^1.1.0、1.x、1
- 兼容模块新发布的大版本、小版本、补丁版本:*、x
config
// 如:key=registry,设置地址
npm config set <key> <value>
// 设置淘宝npm地址
npm config set registry http://registry.npm.taobao.org/
// 如:key=registry,默认地址:https://registry.npmjs.org/
npm config get <key>
// 显示所有配置
npm config list
// 打开配置文件
npm config edit
npm config ls -l
修改全局安装包路径
npm config set prefix "E:\xxx\npm-global"
npm config set cache "E:\xxx\npm-cache"
install
安装npm包分两种:
- 本地安装:自己模块依赖于某个包。
- 全局安装
// 本地安装,在当前的目录下创建一个 node_modules 的目录
npm install <package_name>
// 全局安装
npm install -g <package_name>
// -S, --save 安装包信息将加入到dependencies(生产阶段的依赖)
npm install <package_name> -S
// -D, --save-dev 安装包信息将加入到devDependencies(开发阶段的依赖)
npm install <package_name> -D
本地安装后包的文件目录在哪?
上述命令执行之后将会在当前的目录下创建一个 node_modules
的目录(如果不存在的话),然后将下载的包保存到这个目录下。
全局安装后包的文件目录在哪?
默认的安装路径为C:\Users\xxx\AppData\Roaming\npm
,缓存路径为C:\Users\xxx\AppData\Roaming\npm_cache
,其中xxx根据自己是自己系统的用户名。
会安装哪个版本的包?
本地目录中如果没有 package.json
这个文件的话,那么最新版本的包会被安装。
如果存在 package.json
文件,则会在 package.json
文件中查找针对这个包所约定的语义化版本规则,然后安装符合此规则的最新版本。
uninstall
// 删除 node_modules 目录下面的包
npm uninstall <package_name>
// 从 package.json 文件中删除依赖,需要在命令后添加参数 --save
npm uninstall --save <package_name>
npm uninstall --save-dev <package_name>
// 全局卸载
npm uninstall -g <package_name>
root
// 输出 node_modules 的路径
npm root [-g]
update
npm update -g <package_name>
淘宝npm镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
可以使用cnpm替换npm