命令

  1. 安装插件

    1
    2
    3
    4
    5
    6
    7
    8
    //全局插件
    npm install -g @vue/cli

    //在安装局部模块时,同时将安装的模块信息记录在 package.json 文件中
    npm install antd --save

    //安装局部模块,保存到package.json 文件 开发模块依赖中
    npm install --save-dev eslint
  2. 卸载插件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    //全局插件
    npm uninstall vue-cli -g
    npm cache clean

    //局部插件,卸载模块的同时删除在 package.json 文件中的记录
    npm uninstall lodash --save

    // 卸载 lodash 模块 3.* 版本
    npm uninstall lodash@3.*
  3. 升级插件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // 升级 npm
    npm update -g npm

    npm update -g @vue/cli

    //更新局部模块的同时将更新信息记录到 package.json 文件中
    npm update lodash --save
    npm update lodash@4.13.1 --save

    //就算指定版本,也只能更新到小版本号最新的那个版本,对大版本号不起作用
    比如 lodash 的版本号有:3.9.1、3.10.1、4.13.1
    当前已经安装的 lodash 版本是 3.9.1
    $ npm update lodash@4.13.1 --save
    此时由于对大版本号进行更新,结果没有任何响应,依然是 3.9.1 版本。
    $ npm update lodash@3.10.* --save
    此时并没有更改大版本号,更新结果为 lodash 的版本变成了 3.10.1 版本
  4. 查看 node 安装路径

    1
    npm prefix -g 
  5. 查看配置路径

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    npm config ls

    ; "cli" config from command line options

    omit = []
    user-agent = "npm/7.6.0 node/v14.13.1 darwin x64"

    ; node bin location = /usr/local/Cellar/node/14.13.1/bin/node
    ; cwd = /Users/wangwz
    ; HOME = /Users/wangwz
    ; Run `npm config ls -l` to show all defaults.
  6. 安装资源时指定仓库地址

    1
    --registry=https://registry.npm.taobao.org
  7. 配置

    1
    2
    npm config set prefix "D:/Users/nodejs/npm_global"
    npm config set cache "D:/Users/nodejs/npm_cache"

离线安装(无互联网)

注意⚠️前提是都要安装node环境

  1. 找一台联网的设备安装、打包

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 必须安装打包工具: npm-pack-all
    npm install -g npm-pack-all

    # 安装 elasticdump
    npm install elasticdump -g

    # 查看安装目录
    npm list -g --depth=0

    # 进入elasticdump安装目录打开命令窗口执行
    # 示例进入目录:/Users/wangwz/.nvm/versions/node/v16.11.0/lib/node_modules/elasticdump
    npm-pack-all

    # 即可生成对应的.tgz文件,例如:elasticdump-6.xx.x.tgz
  2. 将生成的.tgz文件上传到未联网设备上

    1
    npm install elasticdump-6.xx.x.tgz

查看全局模块

  • 全局安装安装一次重复使用,本地安装只能在项目中使用
  • 对于那些提供命令行工具的包进行全局安装,其它包本地安装
1
npm list -g --depth=0
image-20210915114648285

查看局部模块

1
npm list

项目目录中 node_modules 目录下

配置

查看源

1
npm get registry

设置源

1
2
3
4
5
# 国内 淘宝 镜像源
npm config set registry https://registry.npmmirror.com/

# 官方镜像源
npm config set registry https://registry.npmjs.org/

cnpm

1
2
// 安装 cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com

问题

npm 全局安装后命令不识别

  1. 查看全局安装路径

    1
    2
    3
    npm prefix -g

    // /usr/local/Cellar/node/14.13.1
  2. 将上述路径「到 bin」添加到环境变量 Path 中

    1
    2
    3
    4
    //打开用户目录下的 .bash_profile
    //末行添加
    NODE_HOME=/usr/local/Cellar/node/14.13.1
    export PATH=$PATH:$NODE_HOME/bin
  3. 执行 source .bash_profile 使文件生效

npm 创建项目

npm init 创建 package.json 文件

1
2
3
4
5
6
7
8
9
name 项目名称
version 项目的版本号
description 项目的描述信息
entry point 项目的入口文件
test command 项目启动时脚本命令
git repository 如果你有 Git 地址,可以将这个项目放到你的 Git 仓库里
keywords 关键词
author 作者叫啥
license 项目要发行的时候需要的证书

创建入口文件 index.js

1
console.log('hello,world')

执行

  • 在项目目录中执行 node index.js 输出信息

  • package.json 中 scripts 添加执行脚本 ,然后执行命令 npm run start 也可以输出信息

    1
    "start": "node index.js",

npm 发布包的版本指定规则

使用 Npm 发布一个包的时候,往往要遵循 x.y.z 的规则,发布的第一个版本一般为 1.0.0。

  • z 补丁号。修改某个功能的 Bug 时,z 值 +1 变成 1.0.1;
  • y 小版本号。增加一个新功能,且不影响已有功能,y 值 +1 变成 1.1.0;
  • x 大版本号。引入新的变化,破坏向后兼容,x 值 +1 变成 2.0.0。

package.json 中包版本 ~ 与 ^ 说明

package.json 中会记录很多包的版本号,前面大多出现 ^ 和 ~ 符号,表示某个包的版本号取值范围,包的版本号在这个范围之内都是可以的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"devDependencies": {
"axios": "^0.15.3",
"babel-eslint": "^6.1.2",
"babel-plugin-dva-hmr": "^0.3.2",
"babel-plugin-import": "^1.1.1",
"draftjs-to-html": "^0.7.0",
"eslint": "^3.17.1",
"eslint-config-airbnb": "^9.0.1",
"eslint-plugin-import": "^1.16.0",
"eslint-plugin-jsx-a11y": "^1.4.2",
"eslint-plugin-react": "^5.1.1",
"less-vars-to-js": "^1.1.2",
"path-to-regexp": "^1.7.0",
"rc-tween-one": "^1.0.0",
"redbox-react": "^1.2.10",
"roadhog": "0.6.0-beta.6"
},

假定某个包的版本是 1.4.0

  • ~1.4.0

    表示:>=1.4.0 && < 1.5.0

    说明:小版本不变,补丁号可以取最大值

  • ^1.4.0

    表示:>=1.4.0 && < 2.0.0

    说明:大版本号不变,小版本号可以取最大值