NPM 的全称是 Node Package Manager,是一个 NodeJS 包管理和分发工具,已经成为了非官方的发布 Node 模块(包)的标准。
2020 年 3 月 17 日,Github 宣布收购 npm,GitHub 现在已经保证 npm 将永远免费。
node.js 是 javascript 的一种运行环境,是对 Google V8 引擎进行的封装。是一个服务器端的 javascript 的解释器。
安装node.js会自带 npm,同时提供 npx 命令,使用 npx 命令可以直接调用模块命令。
设置淘宝镜像源:
npm config set registry https://registry.npm.taobao.org
或设置为阿里源:
npm config set registry https://registry.npmmirror.com
查看配置是否成功:
npm config get registry
还原 npm 仓库:
npm config set registry https://registry.npmjs.org
使用 nrm
使用 cnpm,cnpm 是个中国版的 npm,是淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。
npm install -g cnpm --registry=https://registry.npmmirror.com
该命令的作用:
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
使用 nrm
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
使用 nrm
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
使用 nrm
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
通过 ^、 ~、 *
来指定版本号
^ 表示与版本兼容,指从最左边非 0 算起,该数值不能变
~ 表示次版本号的更新规则,指从最右边非 0 算起,该数值不能变
每次更新版本后会生成 yarn.lock 文件,用于记录当前项目的使用的软件版本号。
根据提示填写内容,也可以按提供的默认值一路回车(Enter)。
npm init
加上 --yes 标志将自动使用默认值 npm init 填充所有选项:
npm init --yes
or
npm init -y
完成以上面操作后,将会生成一个 package.json 文件并将其放置在当前目录中。
全局安装:
npm install -g <package_name>
安装软件包:
不修改 package.json 文件
npm install <package_name>
npm i <package_name>
安装开发环境依赖:
npm install --save-dev <package_name>
npm install -D <package_name>
npm i -D <package_name>
安装生产环境依赖(默认):
npm install --save-prod <package_name>
npm install -S <package_name>
npm i -P <package_name>
同时安装多个包:
npm i express cheerio axios
安装具有相同前缀的多个包:
npm i eslint-{plugin-import,plugin-react,loader} express
用于清除安装包依赖项。它通常用于自动化环境,如 CI/CD 平台。
npm ci
查看安装的模块列表:
npm ls
查看本地已安装的包信息:
npm ls tailwindcss
或
npm ls | grep tailwind
查看包信息:
npm info tailwindcss
或
npm view tailwindcss
列出项目的依赖:
npm list
npm ls
列出项目的依赖,并限制显示的依赖深度:
npm list --depth=2
更新 npm
npm install npm -g
更新所有包
npm update
更新指定包
npm update <package_name>
删除全局包
npm uninstall -g <package_name>
删除项目中的包
npm uninstall <package_name>
npm un <package_name>
调用 mockjs 中的 random:
node_modules/mockjs/bin/random
使用 npx(在 node_modules/.bin 目录和环境变量$PATH 中查找命令并执行):
npx random
pnpm含义为 performant npm 意指『高性能的 npm』,与 npm 一样的都是软件包管理工具,但它还能够管理node.js的版本。它较npm和Yarn在性能上得到很大提升,被称为快速的、节省磁盘空间的包管理工具。
用 npm 全局安装 pnpm:
npm install -g pnpm
使用 nrm
和 npm 类似,把 npm 替换为 pnpm 就行。
npm命令 | pnpm命令 |
---|---|
npm install | pnpm install |
npm i | pnpm add pkg |
npm run cmd | pnpm cmd |
安装命令,同样会在 package.json 文件 dependencies 属性下和 devDependencies 属性增加记录
// 安装 LTS 版本的 Node.js
pnpm env use --global lts
pnpm env use --global argon
// 全局安装v16
pnpm env use --global 16
// 安装最新版本的node js
pnpm env use --global latest
// 移除指定版本的nodejs
pnpm env remove --global 14.0.0
rm -rf node_modules
pnpm import
--frozen-lockfile
参数,防止没有lock文件意外升级依赖包pnpm install --frozen-lockfile
# 删除package-lock.json
rm -rf package-lock.json
# 删除yarn.lock
rm -rf yarn.lock
nrm 管理多个镜像地址,帮助我们在不同的镜像间进行切换。
官方地址
npm install -g nrm
如果遇到报错 node version v16.19.1 ERROR: ERR_REQUIRE_ESM:
const open = require('open');
^
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/123/.nvm/versions/node/v16.19.1/lib/node_modules/nrm/node_modules/open/index.js from /Users/123/.nvm/versions/node/v16.19.1/lib/node_modules/nrm/cli.js not supported.
详见
请降低版本:
npm install -g nrm open@8.4.2 --save
m1 芯片安装出错,执行如下命令:
npm uninstall -g nrm
npm i -g @adams549659584/nrm
查看镜像列表:
nrm ls
output:
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
选择腾讯的镜像:
nrm use tencent
查看当前的源:
nrm test
nrm current
测试速度:
nrm test
nodemon 是一种工具,通过在检测到目录中的文件更改时自动重新启动 node 应用程序来帮助开发基于 Node.js 的应用程序。
一般只在开发时使用
用 nodemon 代替 node 来运行代码,这样当代码发生改变时,进程会自动重启。
特性:
npm add -g nodemon
命令行配置选项
配置项 | 说明 |
---|---|
ignore | 忽略监测的文件或目录 |
colours | 输出信息颜色 |
verbose | 显示详细执行日志 |
restartable | 生起命令的字符串 |
watch | 监控的文件或目录路径 |
ext | 监控文件的扩展名 |
exec | 执行的程序 |
如:
更多示例
// 监控指定文件夹或者文件变化
nodemon --watch app --watch libs app.js
// 监控指定后缀名的文件,用空格间隔。
nodemon -e js,pug
配置文件示例:
{
"ignore": [
"node_modules",
"dist"
],
"colours": true,
"verbose": true,
"restartable": "rs",
"watch": [
"*.*"
],
"ext": "html,js"
}
在 package.json 中配置:
{
"name": "electron-camera",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --exec electron . "
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"electron": "^22.0.2"
}
}
nvm 官网
nvm(node version manager)是 node 版本管理工具,为了解决 node 各种版本存在不兼容现象,让你在同一台机器上安装和切换不同版本的 node 的工具。
如果之前使用 npm 安装过扩展包,现在想使用 NVM 进行管理。则首先需要从全局中删除 node_modules 目录,下面命令可以查看全局 node_modules 目录:
npm root -g
brew install nvm
在.zshrc
添加环境变量:
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
重新加载配置
source ~/.zshrc
windows 用户请下载安装 nvm-windows
获得帮助
nvm -h
列出所有可安装的 node 版本
nvm ls-remote
安装指定版本
nvm install 18
切换使用指定的版本 node
nvm use 18
查看本地已安装的 node 版本,同时也会显示当前使用的 node 版本
nvm list
显示当前版本
nvm current
删除指定版本,将删除该版本安装的所有包
nvm uninstall 18