npm & yarn 更换源等常用命令或操作

2023/3/6·2 views

npm

由于node下载第三方依赖包是从国外服务器下载,虽然没有被墙,但是下载的速度是非常的缓慢且有可能会出现异常。
所以为了提高效率,我们还是把npm的镜像源替换成淘宝的镜像源。有几种方式供我们选择

使用cnpm

使用阿里定制的cnpm命令行工具代替默认的npm,输入以下代码

shell 复制代码
npm install -g cnpm --registry=https://registry.npmmirror.com 
cnpm -v      #检测是否安装成功

安装成功之后,以后安装依赖包的方式和npm的是一样的,只是npm的命令换成是cnpm就可以了

假如你已经习惯了使用npm的安装方式的,不想去下载阿里的cnpm命令工具的话,很简单,我们直接将node的仓库地址换成淘宝仓库地址即可

单次使用

shell 复制代码
npm install --registry=https://registry.npmmirror.com

永久使用

在开发react-native的时候,不要使用cnpm!cnpm安装的模块路径比较奇怪,packager不能正常识别。所以,为了方便开发,我们最好是直接永久使用淘宝的镜像源

直接命令行的设置

shell 复制代码
npm config set registry https://registry.npmmirror.com

手动修改设置

1.打开.npmrc文件(C:\Program Files\nodejs\node_modules\npm\npmrc,没有的话可以使用git命令行建一个(touch .npmrc),用cmd命令建会报错)
2.增加

plain 复制代码
registry =https://registry.npmmirror.com

即可。

检测是否修改成功

php 复制代码
// 配置后可通过下面方式来验证是否成功
npm config list
npm config get registry
npm info express

注:如果想还原npm仓库地址的话,只需要在把地址配置成npm镜像就可以了

shell 复制代码
npm config set registry https://registry.npmjs.org/

查看npm install -g安装位置

shell 复制代码
npm root -g

yarn


yarn install --frozen-lockfile 强制使用现有 yarn.lock,避免更新

yarn add

shell 复制代码
yarn add [package]@[version]

这将安装您的dependencies中的一个或多个包。
--dev-D 会在 devDependencies 里安装一个或多个包。

plain 复制代码
yarn global add <package...> //全局安装依赖

对于绝大部分包来说,这是个坏习惯,因为它们是隐藏的。 最好本地安装你的依赖,这样它们都是明确的,每用你项目的人都能得到同样的依赖。
注意:yarn add global <package...>会变成本地安装,注意顺序。

yarn cache

plain 复制代码
 yarn cache dir

运行 yarn cache dir 会打印出当前的 yarn全局缓存在哪里。

plain 复制代码
yarn cache list --pattern <pattern> //列出匹配指定模式的已缓存的包

示例:yarn cache list --pattern "gulp-(match|newer)"

yarn cache clean
运行此命令将清除全局缓存。 将在下次运行 yarn 或 yarn install 时重新填充。

yarn list

plain 复制代码
yarn list [--depth] [--pattern]

默认情况下,所有包和它们的依赖会被显示。 要限制依赖的深度,你可以给 list 命令添加一个标志 --depth 所需的深度。
示例

plain 复制代码
yarn list --depth=0

yarn remove

plain 复制代码
yarn remove <package...>

运行 yarn remove foo 会从你的直接依赖里移除名为 foo 的包,在此期间会更新你的 package.jsonyarn.lock 文件。

yarn run

plain 复制代码
yarn run [script] [<args>]

如果你已经在你的包里定义了 scripts,这个命令会运行指定的 [script]。例如:
运行这个命令会执行你的 package.json 里名为 "test" 的脚本。

yarn upgrade

plain 复制代码
 yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]

可以选择指定一个或多个包名称。指定包名称时,将只升级这些包。未指定包名称时,将升级所有依赖项。

查看npm上已经全局安装的命令

plain 复制代码
npm list -g --depth=0

查看yarn 全局安装的根目录

plain 复制代码
 yarn global bin

查看npm 全局安装的根目录

plain 复制代码
npm bin

yarn windows 安装

plain 复制代码
choco install yarn

或者

plain 复制代码
scoop install yarn

或者下载安装包

在使用 Yarn 进行包安装时,默认情况下会同时安装开发依赖(devDependencies)和生产依赖(dependencies)两种依赖包。如果您只需要安装生产依赖,则可以在安装时使用 --production 选项来指定只安装生产依赖。

例如,要只安装生产依赖,而不安装开发依赖,您可以运行以下命令:

plain 复制代码
yarn install --production

这将只安装 dependencies 而不安装 devDependencies。

请注意,如果您后续需要安装开发依赖,请在命令中省略 --production 选项,或者运行以下命令来单独安装开发依赖:

plain 复制代码
yarn install --dev

这将只安装 devDependencies 而不安装 dependencies。

这个错误通常是由于权限问题引起的,它可能是由于您没有足够的权限来安装全局模块或在项目目录中安装模块引起的。您可以尝试以下解决方案:

如果您是在 Linux 或 macOS 系统上运行 npm install,请尝试使用 sudo 权限运行命令:

plain 复制代码
sudo npm install

如果您正在 Windows 上运行 npm install,请尝试使用管理员权限打开命令提示符或 PowerShell 窗口,并在其中运行命令。

检查您的文件系统权限,确保您具有在目标文件夹中创建文件夹的权限。在某些情况下,您可能需要手动创建目标文件夹并为其设置适当的权限,以便您可以在其中安装模块。

尝试指定 --unsafe-perm 选项运行 npm install,以在安装全局模块时跳过权限检查:

plain 复制代码
npm install -g your-module --unsafe-perm

如果您正在使用 nvm 等工具管理多个 Node.js 版本,请确保您已切换到正确的版本并重新运行 npm install

常见错误

npm install时,node-sass 报错缺少python2

plain 复制代码
npm i --ignore-scripts

本地正常运行,上线安装编译就各种报错

可以将源设置成和本地一致的源再尝试

yarn安装后没有node_modules ,因为启用了 Yarn 2+ 的 PnP 模式

解决步骤

临时切换到 node_modules 模式(非 PnP)排查是否为 PnP 导致:

在项目根目录创建 / 修改 .yarnrc.yml,添加:yaml

yaml 复制代码
nodeLinker: node-modules

重新安装依赖:bash

bash 复制代码
yarn install

\