npm 常用命令

NPM 常用命令

说明

npm 是 Node 默认的模块管理器是一个命令行下的软件,用来安装和管理 Node 模块

安装

安装 Node 的时候会默认安装 npm ,但是这个 npm 可能不是最新的版本,可以通过以下命令更新 npm 版本

    # 安装最新版本
    sudo npm install npm@latest -g
    # 查看版本
    npm --version 

命令

1. npm init 初始化

npm init 命令会向用户提问一系列问题,然后生成一个 package.json 文件, 使用参数 -f 或者 -y 则会跳过提问阶段,直接生成 package.json 文件

    # 需要回到提问,或者回车键默认
    npm init 
    # 直接使用默认配置
    npm init -f # npm init -y
2. npm install 安装模块

模块的安装分为全局安装和本地安装,全局安装会将模块安装到系统目录中,各个项目都可以调用,本地安装会将模块下载到当前项目的 node_modules 子目录下,只有当前项目才能调用这个模块。安装前,会先检查 node_modules 中是否已经存在指定模块,如果存在就不在重复安转,如果需要强制重新安装可以使用 -f --force 参数

    # 安装某个模块 (安装的模块名不会记录在 package.json 中)
    npm install webpack
    # 安装某个模块 (模块记录在 package.json 的 dependencies 中)
    npm install webpack --save # 或者 -S
    # 安装某个模块 (模块记录在 package.json 的 devDependencies 中)
    npm install webpack --save-dev # 或者 -D
    # 全局安装模块
    npm install webpack -g
    # 安装指定版本
    npm install webpack@3.10.0 --save 
    # 指定安装版本范围
    npm insatll webpack@">=2.0.0 <3.10.0"
    # 安装模块最新版本
    npm install webpack@latest
    # 安装模块的确切版本 默认安装 "^3.10.0" 表示 3.10.0 及其以上、大版本号为3的版本 使用 --save-exact 后 "3.10.0" 表示只有 3.10.0 版本
    npm install webpack --save --save-exact 
    # 安装 package.json 文件中记录的模块
    sudo rm -rf node_modules # 删除安装的模块
    npm install # 需要有 package.json 文件
3. npm uninstall 卸载模块
    # 卸载模块
    npm uninstall webpack
    # 卸载全局模块
    npm uninstall webpack -g
    # 卸载 dependencies 中模块
    npm uninstall webpack --save # -S
    # 卸载 devDependencies 中模块
    npm uninstall webpack --save-dev # -D
4. npm update 更新本地安装模块

会按照 依赖版本规则更新,比如 针对 “^2.1.0” 只会更新小版本号到最新

    # 更新全部 package.json 中的模块
    npm update
    # 更新 dependencies 中模块
    npm update --save # -S
    # 更新 devDependencies 中模块
    npm update --save-dev # -D
    # 更新指定的模块
    npm update webpack --save-dev
    # 更新全局模块
    npm update webpack -g
    # 从npm v2.6.1 开始,npm update只更新顶层模块,而不更新依赖的依赖,以前版本是递归更新的。如果想取到老版本的效果,要使用下面的命令
    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"
        },
    }

命令行

    # 执行 script 中 dev 的脚本
    npm run dev
    # 执行 script 中 start的脚本 npm start 与 npm test 是两个默认的简写命令 
    npm start 
    # 列出所有 package.json 中记录的可执行脚本命令
    npm run 
  1. npm run 会创建一个 shell ,执行指定的命令,并临时将 node_modules/.bin 加入 PATH 变量,这意味着本地模块可以直接运行

  2. 通过 npm install 本地安装的模块,都会被安装到 node_modules 子目录,并且在 node_modules/.bin 目录下生成一个同名的符号链接 指向安装的模块的可执行脚本

  3. 这样通过 npm run a 命令执行 package.json 中 script => a 部分定义命令时,可以不带路径的引用 node_modules/.bin 下的脚本

scripts 中的命令,可以使用 && 串联两个命令,两个命令依次执行;也可以使用 & 并联两个命令,两个命令平行执行

    // package.json
    {
        scripts: {
            "dev": "npm run test1 && npm run test2", // && 用于串联
            "build": "npm run test1 & npm run test2", // & 用于并联
            "test1": "...",
            "test2": "..."
        }
    }

pre- 和 post- 钩子用于脚本的前置执行和后置执行

    {
        "scripts": {
            "dev": "node app.js",
            "predev": "node test.js", 
            "postdev": "node test.js"
        }
    }
    /*
        调用 # npm run dev
        依次执行 predev => dev => postdev
    */

scripts 字段中可以使用一些内部变量,主要是 package.json 的各中字段,格式为 npm_package_<propName>

    // 获取版本号
    {
        "dev": "mkdir $npm_package_version"
    }
6. npm info 查看模块具体信息
    npm info webpack
7. npm list 列出安装的模块

npm list 命令以树型结构列出当前项目安装的所有模块,以及它们依赖的模块。

    # 列出当前项目安装的模块
    npm list 
    # 列出全局安装的模块
    npm list -g
    # 列出单个模块的依赖
    npm list webpack
8. npm set 设置环境变量
    npm set init-author-name 'Your name'
    npm set init-author-email 'Your email'
    npm set init-author-url 'http://yourdomain.com'
    npm set init-license 'MIT'

    # 设置 package.json 只记录确切版本 "^1.0.0" => "1.0.0"
    npm set save-exact true
9. npm config 编辑 npmrc 文件的内容

npm 配置命令可用于更新和编辑 用户 和 全局 npmrc 文件的内容。

    # 设置
    npm config set key value
    # 获取
    npm config get key
    # 列出
    npm config list
    # 删除
    npm config delete key
    # 命令行中编辑
    npm config edit 
    # 设置 $dir 目录为全局安装目录,如果当前有这个目录的写权限,那么运行npm install的时候,就不再需要sudo命令授权了。
    npm config set prefix $dir
    # 设置安装新模块时,package.json 记录版本号的方式 ~ \ ^ 等
    npm config set save-prefix ~
    # 设置淘宝镜像
    npm config set registry https://registry.npm.taobao.org

更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值