npm 常用命令
NPM 常用命令
说明
npm 是 Node 默认的模块管理器是一个命令行下的软件,用来安装和管理 Node 模块
安装
安装 Node 的时候会默认安装 npm ,但是这个 npm 可能不是最新的版本,可以通过以下命令更新 npm 版本
1 # 安装最新版本 2 sudo npm install npm@latest -g 3 # 查看版本 4 npm --version
命令
1. npm init 初始化
npm init命令会向用户提问一系列问题,然后生成一个package.json文件, 使用参数-f或者-y则会跳过提问阶段,直接生成package.json文件
1 # 需要回到提问,或者回车键默认 2 npm init 3 # 直接使用默认配置 4 npm init -f # npm init -y
2. npm install 安装模块
模块的安装分为全局安装和本地安装,全局安装会将模块安装到系统目录中,各个项目都可以调用,本地安装会将模块下载到当前项目的
node_modules子目录下,只有当前项目才能调用这个模块。安装前,会先检查node_modules中是否已经存在指定模块,如果存在就不在重复安转,如果需要强制重新安装可以使用-f--force参数
1 # 安装某个模块 (安装的模块名不会记录在 package.json 中) 2 npm install webpack 3 # 安装某个模块 (模块记录在 package.json 的 dependencies 中) 4 npm install webpack --save # 或者 -S 5 # 安装某个模块 (模块记录在 package.json 的 devDependencies 中) 6 npm install webpack --save-dev # 或者 -D 7 # 全局安装模块 8 npm install webpack -g 9 # 安装指定版本 10 npm install webpack@3.10.0 --save 11 # 指定安装版本范围 12 npm insatll webpack@">=2.0.0 <3.10.0" 13 # 安装模块最新版本 14 npm install webpack@latest 15 # 安装模块的确切版本 默认安装 "^3.10.0" 表示 3.10.0 及其以上、大版本号为3的版本 使用 --save-exact 后 "3.10.0" 表示只有 3.10.0 版本 16 npm install webpack --save --save-exact 17 # 安装 package.json 文件中记录的模块 18 sudo rm -rf node_modules # 删除安装的模块 19 npm install # 需要有 package.json 文件 npm --cache-min 9999999 install 先从缓存加载,
3. npm uninstall 卸载模块
1 # 卸载模块 2 npm uninstall webpack 3 # 卸载全局模块 4 npm uninstall webpack -g 5 # 卸载 dependencies 中模块 6 npm uninstall webpack --save # -S 7 # 卸载 devDependencies 中模块 8 npm uninstall webpack --save-dev # -D
4. npm update 更新本地安装模块
会按照 依赖版本规则更新,比如 针对 “^2.1.0” 只会更新小版本号到最新
1 # 更新全部 package.json 中的模块 2 npm update 3 # 更新 dependencies 中模块 4 npm update --save # -S 5 # 更新 devDependencies 中模块 6 npm update --save-dev # -D 7 # 更新指定的模块 8 npm update webpack --save-dev 9 # 更新全局模块 10 npm update webpack -g 11 # 从npm v2.6.1 开始,npm update只更新顶层模块,而不更新依赖的依赖,以前版本是递归更新的。如果想取到老版本的效果,要使用下面的命令 12 npm --depth 9999 update
5. npm run 执行脚本
package.json文件有一个scripts字段,可以用于指定脚本命令,供npm直接调用。
{ "name": "xxx", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "cross-env NODE_ENV=development node app.js", "dev": "node app.js" }, }
命令行
1 # 执行 script 中 dev 的脚本 2 npm run dev 3 # 执行 script 中 start的脚本 npm start 与 npm test 是两个默认的简写命令 4 npm start 5 # 列出所有 package.json 中记录的可执行脚本命令 6 npm run
-
npm run会创建一个 shell ,执行指定的命令,并临时将node_modules/.bin加入 PATH 变量,这意味着本地模块可以直接运行 -
通过
npm install本地安装的模块,都会被安装到node_modules子目录,并且在node_modules/.bin目录下生成一个同名的符号链接 指向安装的模块的可执行脚本 -
这样通过
npm run a命令执行package.json中 script => a 部分定义命令时,可以不带路径的引用node_modules/.bin下的脚本
scripts 中的命令,可以使用
&&串联两个命令,两个命令依次执行;也可以使用&并联两个命令,两个命令平行执行
1 // package.json 2 { 3 scripts: { 4 "dev": "npm run test1 && npm run test2", // && 用于串联 5 "build": "npm run test1 & npm run test2", // & 用于并联 6 "test1": "...", 7 "test2": "..." 8 } 9 }
pre- 和 post- 钩子用于脚本的前置执行和后置执行
1 { 2 "scripts": { 3 "dev": "node app.js", 4 "predev": "node test.js", 5 "postdev": "node test.js" 6 } 7 } 8 /* 9 调用 # npm run dev 10 依次执行 predev => dev => postdev 11 */
scripts字段中可以使用一些内部变量,主要是package.json的各中字段,格式为npm_package_<propName>
1 // 获取版本号 2 { 3 "dev": "mkdir $npm_package_version" 4 }
6. npm info 查看模块具体信息
1 npm info webpack
7. npm list 列出安装的模块
npm list 命令以树型结构列出当前项目安装的所有模块,以及它们依赖的模块。
1 # 列出当前项目安装的模块 2 npm list 3 # 列出全局安装的模块 4 npm list -g 5 # 列出单个模块的依赖 6 npm list webpack
8. npm set 设置环境变量
1 npm set init-author-name 'Your name' 2 npm set init-author-email 'Your email' 3 npm set init-author-url 'http://yourdomain.com' 4 npm set init-license 'MIT' 5 6 # 设置 package.json 只记录确切版本 "^1.0.0" => "1.0.0" 7 npm set save-exact true
9. npm config 编辑 npmrc 文件的内容
npm 配置命令可用于更新和编辑 用户 和 全局 npmrc 文件的内容
1 # 设置 2 npm config set key value 3 # 获取 4 npm config get key 5 # 列出 6 npm config list 7 # 删除 8 npm config delete key 9 # 命令行中编辑 10 npm config edit 11 # 设置 $dir 目录为全局安装目录,如果当前有这个目录的写权限,那么运行npm install的时候,就不再需要sudo命令授权了。 12 npm config set prefix $dir 13 # 设置安装新模块时,package.json 记录版本号的方式 ~ \ ^ 等 14 npm config set save-prefix ~ 15 # 设置淘宝镜像 16 npm config set registry https://registry.npm.taobao.org

浙公网安备 33010602011771号