npm、pnpm、yarn、nodemon、nvm的介绍、安装和使用
一、 npm
1.1 简介
NPM 的全称是 Node Package Manager,是一个 NodeJS 包管理和分发工具,已经成为了非官方的发布 Node 模块(包)的标准。
2020 年 3 月 17 日,Github 宣布收购 npm,GitHub 现在已经保证 npm 将永远免费。
node.js 是 javascript 的一种运行环境,是对 Google V8 引擎进行的封装。是一个服务器端的 javascript 的解释器。
安装node.js会自带 npm,同时提供 npx 命令,使用 npx 命令可以直接调用模块命令。
1.2 镜像加速
方式一
npm config set registry https://registry.npm.taobao.org
或设置为阿里源:
npm config set registry https://registry.npmmirror.com
npm config get registry
npm config set registry https://registry.npmjs.org
方式二
使用 nrm
方式三
使用 cnpm,cnpm 是个中国版的 npm,是淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm。
npm install -g cnpm --registry=https://registry.npmmirror.com
该命令的作用:
1.3 版本号
版本号说明
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
方式二
使用 nrm
1.3 版本号
版本号说明
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
方式二
使用 nrm
1.3 版本号
版本号说明
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
npm config set registry https://registry.npmjs.org
方式二
使用 nrm
1.3 版本号
版本号说明
版本示例: a.b.c 表示 主版本号.次版本号.修补版本号
指定版本
- 版本号 ^2.1.0:指 >=2.1.0 但< 3.0.0
- 版本号^0.2.1:指>=0.2.1 但 <0.3.0
- 版本号^0.1.0: 指 >=0.1.0 但 <0.2.0
~ 表示次版本号的更新规则,指从最右边非 0 算起,该数值不能变
- 版本号~2.1.0:指>=2.1.0 但 <2.2.0
- 版本号~2.0.0:指>=2.0.0
- *表示任意版本,永远更新最新版本
- -表示版本区间
1.2.1-1.6.5:指 1.2.1 与 1.6.5 间的任意版本
锁定版本
每次更新版本后会生成 yarn.lock 文件,用于记录当前项目的使用的软件版本号。
1.4 常用命令
初始化项目
根据提示填写内容,也可以按提供的默认值一路回车(Enter)。
npm init
加上 —yes 标志将自动使用默认值 npm init 填充所有选项:
npm init --yes
or
npm init -y
完成以上面操作后,将会生成一个 package.json 文件并将其放置在当前目录中。
安装
全局安装:
npm install -g <package_name>
npm install <package_name>
npm i <package_name>
- 在 package.json 文件 devDependencies 属性下增加记录
- npm install 时会自动安装该软件包
- 使用 npm install —production 或者 NODE_ENV 变量值为 production 时,不会安装该软件包
npm install --save-dev <package_name>
npm install -D <package_name>
npm i -D <package_name>
- 在 package.json 文件 dependencies 属性下增加记录
- npm install 时会自动安装该软件包
- 使用 npm install —production 或者 NODE_ENV 变量值为 production 时,安装该软件包
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>
调用某个包的命令
node_modules/mockjs/bin/random
使用 npx(在 node_modules/.bin 目录和环境变量$PATH 中查找命令并执行):
npx random
二、pnpm
2.1 简介
pnpm含义为 performant npm 意指『高性能的 npm』,与 npm 一样的都是软件包管理工具,但它还能够管理node.js的版本。它较npm和Yarn在性能上得到很大提升,被称为快速的、节省磁盘空间的包管理工具。
2.2 安装
用 npm 全局安装 pnpm:
npm install -g pnpm
2.3 镜像加速
使用 nrm
2.4 常用命令
npm命令 | pnpm命令 |
---|---|
npm install | pnpm install |
npm i | pnpm add pkg |
npm run cmd | pnpm cmd |
安装命令,同样会在 package.json 文件 dependencies 属性下和 devDependencies 属性增加记录
2.5 管理 Node.js 环境,安装并使用指定版本的 Node.js
// 安装 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
2.6 npm或yarn转移到pnpm包管理
rm -rf node_modules
pnpm import
pnpm install --frozen-lockfile
# 删除package-lock.json
rm -rf package-lock.json
# 删除yarn.lock
rm -rf yarn.lock
三、nrm
3.1 nrm
3.2 安装
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
npm uninstall -g nrm
npm i -g @adams549659584/nrm
3.3 常用命令
nrm ls
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
4.1 简介
nodemon 是一种工具,通过在检测到目录中的文件更改时自动重新启动 node 应用程序来帮助开发基于 Node.js 的应用程序。
一般只在开发时使用
用 nodemon 代替 node 来运行代码,这样当代码发生改变时,进程会自动重启。
特性:
- 自动重新启动应用程序。
- 检测要监视的默认文件扩展名。
- 默认支持 node,但易于运行任何可执行文件,如 python、ruby、make 等。
- 忽略特定的文件或目录。
- 监视特定目录。
- 使用服务器应用程序或一次性运行实用程序和 REPL。
- 可通过 Node require 语句编写脚本。
- 开源,在 github 上可用。
4.2 安装
npm add -g nodemon
4.3 使用
配置项 | 说明 |
---|---|
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"
}
{
"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
5.1 简介
nvm(node version manager)是 node 版本管理工具,为了解决 node 各种版本存在不兼容现象,让你在同一台机器上安装和切换不同版本的 node 的工具。
5.2 安装
如果之前使用 npm 安装过扩展包,现在想使用 NVM 进行管理。则首先需要从全局中删除 node_modules 目录,下面命令可以查看全局 node_modules 目录:
npm root -g
Mac OS
brew install nvm
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
5.3 常用命令
获得帮助
nvm -h
列出所有可安装的 node 版本
nvm ls-remote
安装指定版本
nvm install 18
切换使用指定的版本 node
nvm use 18
查看本地已安装的 node 版本,同时也会显示当前使用的 node 版本
nvm list
显示当前版本
nvm current
删除指定版本,将删除该版本安装的所有包
nvm uninstall 18
原文地址:https://blog.csdn.net/weixin_45827423/article/details/129696854
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_18685.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!