【NodeJS包管理器】

203 阅读7分钟

Node 下载地址:nodejs.org/en

查看当前版本

node -v

管理员身份运行 powershell - 更改策略模式

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Nvm 官方下载地址:github.com/nvm-sh/nvm
gitee 镜像地址:gitee.com/mirrors/nvm…

nvm --version # 版本号
nvm -v # 版本号
nvm --help # 使用说明
nvm list available # 查看所有 Node 版本
nvm ls # 本地安装所有 Node 版本
nvm install <version> # 安装指定版本 
nvm use <version> # 使用指定版本

Npm

查看所有全局安装包

--depth 0 指定了只显示最顶层的全局包,即那些直接安装在全局 node_modules 文件夹下的包,不展示它们的依赖层次结构。

npm list -g --depth 0

查看本地所有依赖包版本信息,检查已安装的本地模块是否是最新的版本。

npm outdate

相关指令

全局安装

npm install -g <package-name>

本地安装生产环境依赖包

npm install --save <package-name>[@latest]/[@next]

本地安装开发环境依赖包

npm install --save-dev <package-name>[@latest]/[@next]

卸载全局包

npm uninstall -g <package-name> 

卸载本地包

npm uninstall <package-name>

更新所有本地依赖包

npm update

更新所有全局依赖包

npm update -g

更新全局安装依赖包

npm update -g <package-name>

清除缓存

npm cache clean --force

验证缓存

npm cache verify

版本检测

npm i -g npm-check

查看

npm-check 

建议:交互式查看
Non-Semver 表示主版本更新存在风险; Major Update 主版本号,不更新

npm-check -u

依赖冲突

npm install --legacy--peer-deps

npx

npx 用于执行安装在本地项目中的可执行文件;
npx mrm 是执行项目脚手架任务的命令;
npx msw 是一个用于模拟服务端的工具,它是 Mock Service Worker(MSW)的命令行接口;


yarn

安装

npm install yarn -g

初始化

yarn init
yarn create -y

查看版本

yarn -v

yarn install

安装一个项目的所有依赖; 执行不带任何命令的 yarn,等同于执行yarn install,并透传所有参数

yarn add

一个包是一个包含代码的文件夹和一个描述包内容的 package.json 文件; 执行yarn add package-name 命令,来为项目安装所需的包; yarn add 和 yarn add --dev。

yarn remove # 删除
yarn add [package-name]

安装 latest 最新版本。

yarn add package-name

从 registry 里安装这个包的指定版本。

yarn add package-name@1.2.3

安装某个 “tag” 标识的版本(比如 beta、next 或者 latest)。

yarn add package-name@tag

yarn outdated
列出当前项目包的所有依赖项的版本信息,包括当前已安装的版本、最符合语义版本定义(semver)的版本和最新的可用版本。

yarn upgrade
根据在 package.json 文件中所指定的版本范围将依赖更新到其最新版本,也会重新生成yarn.lock 文件;

yarn upgrade # 更新

upgrade-interactive 与 upgrade 命令采用相同的参数和功能;
在执行升级操作之前,此命令将显示已过期的包列表,并允许用户选择相应的想要升级的包;
--latest : 此标志告知 yarn 忽略 package.json 中指定的版本范围,改用资源库中标为 latest 的版本,谨慎使用。

yarn upgrade-interactive [--latest]

yarn check

验证当前项目 package.json 里的依赖版本和 yarn 的 lock 文件是否匹配;
验证当前项目 package.json 里包内容的版本和 hash 值是否与 yarn 的 lock 文件一致。 这有助于验证包依赖没有更改;

yarn check [--integrity]

yarn cache

Yarn 将每个包存储在你的文件系统-用户目录-全局缓存中。
yarn cache list 将列出已缓存的每个包。
yarn cache list --pattern 将列出匹配指定模式的已缓存的包。

yarn cache list [--pattern]

打印出当前的 yarn 全局缓存路径。

yarn cache dir

运行此命令将清除全局缓存; 将在下次运行 yarn 或 yarn install 时重新填充。 此外,您可以指定一个或多个想要清除的包

yarn cache clean [<module_name...>]
yarn cache clean --force

pnpm

文档:pnpm.io/installatio…

优势

  • 更快的安装和更新时间:比其他包管理器快2倍,当安装共享依赖的多个包时,pnpm只会为每个依赖安装一次,而 npm 和 yarn 会为每个包分别安装每个依赖。
  • 更少的磁盘空间使用:节省磁盘空间的包管理工具,使用的磁盘空间比 npm 和 yarn更少。
  • 更好地支持 monorepos:pnpm 旨在与 monorepo 项目很好地配合使用,项目是在单个存储库中包含多个包或模块的项目,pnpm 独特的包管理方法可以更轻松地管理 monorepo 中多个包和模块的依赖关系。
  • 更好地支持对等依赖:pnpm 比 npm 和 yarn对对等依赖有更好的支持。对等依赖项是包所需的依赖项,但不应与包一起安装,因为它们已由应用程序或其他依赖项提供。 pnpm 可以比 npm和 yarn 更高效、更准确地处理对等依赖。
  • 更清晰的依赖树:pnpm 生成比 npm 和 yarn 更清晰的依赖树,平面目录结构,而 npm 和yarn 使用嵌套目录。扁平结构使得依赖树更容易理解和调试。

劣势

  • 可能会遇到某些包或工具的兼容性问题。

安装

npm install pnpm -g

指令

pnpm install 包名
pnpm i 包名
pnpm add 包名    // -S  默认写入dependencies
pnpm add -D    // -D devDependencies
pnpm add -g    // 全局安装
pnpm remove 包名 // 移除
pnpm up // 更新所有依赖项
pnpm upgrade 包 // 更新包
pnpm upgrade 包 --global // 更新全局包

提取顶层文件
将依赖中的公共包资源进行提取; 创建 .npmrc

shamefully-hoist=true
pnpm i

镜像

查看镜像源

npm config get registry
yarn config get registry
pnpm config get registry

全局设置镜像源 npmmirror.com/

npm config set registry https://registry.npmmirror.com
yarn config  set registry https://registry.npmmirror.com
yarn config set registry https://registry.yarnpkg.com
pnpm config set registry https://registry.npmmirror.com

局部配置-项目根目录中新建 .npmrc.yarnrc 文件

registry=https://https://registry.npmmirror.com
registry=https://https://registry.npmmirror.com

淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

nrm

npm install -g nrm # 安装:
nrm --version / -v # 查看版本
nrm use <registry> # 切换镜像
nrm add <registry> <url> # 添加镜像:
nrm del <registry> # 删除镜像
nrm test 镜像名称 # 测速

私有包发布

1. 准备工作

确保你的项目满足以下条件: 已经安装了 Node.js 和 NPM。如果还没有安装,请访问 Node.js 官网,下载并安装。 项目有一个 package.json 文件。 如果没有,你可以通过运行 npm init 来创建一个。 最后,创建 README、设置 package.json script 命令;

npm init
name:包名(小写英文 + 短横线)
version:版本
main:入口文件
script:运行脚本
author:作者
description:描述
keywords:关键字
github:关联 github 地址
license:MIT 开源 ISC 不开源

2. 更新 package.json 文件

确保你的 package.json 文件包含以下信息:
name :包名,确保是全局唯一的(小写的英文 + 短横线), eg: @vue/use, @vue/core。
version :当前包版本,遵循 Semantic Versioning 规范。
main :包的入口文件。
scripts :包中可执行的脚本。
dependencies 和 devDependencies :包所依赖的其他包。

例:

{
	"name": "your-package-name",
	"version": "1.0.0",
	"main": "index.js",
	"scripts": {
		"test": "echo \"Error: no test specified\" && exit 1"
	},
	"dependencies": {},
	"devDependencies": {}
}

3. 创建 .npmignore 文件

创建一个 .npmignore 文件来排除发布时不需要的文件。这类似于 .gitignore 文件。例如:

node_modules
*.log
*.swp
*.bak

4. 登录 NPM 账户

注册账号: www.npmjs.com/ 设置镜像源

npm config set registry https://registry.npmjs.org // 设置 npm 源
npm config get registry // 查看源

在终端中运行 npm login 命令,并输入你的 NPM 账户名、密码和邮箱; 如果还没有账户,可以通过运行 npm adduser 创建一个

npm login

5. 发布包

运行以下命令发布你的包到 NPM: npm publish 推送(+ 包名@版本号 发布成功) search 包名 查看发布情况 撤销命令(避免发布垃圾包):npm unpublish 包名@版本号 -f

npm publish

发布成功后,你会在终端看到类似的输出信息:

+ your-package-name@1.0.0

6. 确认发布

登录 NPM 官网,进入你的个人主页,查看已发布的包。

7. 更新和维护

当你的包需要更新时,确保按照 Semantic Versioning 规范更新 package.json 文件中的版本号; 然后重新执行 npm publish 命令发布新版本。 完成以上步骤后,你的包就成功发布到了 NPM; 现在其他开发者可以通过 npm install yourpackage-name 命令安装你的包