Win11 Cannot Load Yarn

在使用 Yarn 作为软件包管理器时,有时会遇到以下错误信息:“无法加载文件 D:\nodejs\yarn.ps1,因为在此系统上禁止运行脚本”。

当在 Windows 系统上运行 Yarn 命令时,Yarn 会尝试加载一个名为 yarn.ps1 的 PowerShell 脚本文件,由于默认情况下禁运行未签名的脚本,所以会导致加载失败并引发错误。

解决方法:更改默认 (LocalMachine) 作用域的执行策略,使用 “以管理员身份运行” 选项启动 Windows PowerShell

  1. 以管理员身份运行 Window PowerShell 执行 get-ExecutionPolicy 命令,查看当前的执行策略;
  2. 查看返回值是否为 Restricted,意思是当前是受限制的;
  3. 执行 set-ExecutionPolicy RemoteSigned 命令,更改 Window PowerShell 的执行策略
  4. 是否要更改执行策略?执行 Y,或直接回车。
1
2
3
4
5
6
7
8
9
PS C:\windows\system32> get-ExecutionPolicy
Restricted
PS C:\windows\system32> set-ExecutionPolicy RemoteSigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本更改执行策略可能会产生安全风险 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述是否要更改执行策略?
[Y] (Y)  [A] 全是(A)  [N] (N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为N): Y
PS C:\windows\system32> set-ExecutionPolicy RemoteSigned

再次自测 yarn 命令是否正常使用

PS D:\Project\chatai-st> npm install -g yarn

changed 1 package in 990ms
PS D:\Project\chatai-st> yarn --version
1.22.21
PS D:\Project\chatai-st> yarn config list
yarn config v1.22.21
info yarn config
{
  'version-tag-prefix': 'v',
  'version-git-tag': true,
  'version-commit-hooks': true,
  'version-git-sign': false,
  'version-git-message': 'v%s',
  'init-version': '1.0.0',
  'init-license': 'MIT',
  'save-prefix': '^',
  'bin-links': true,
  'ignore-scripts': false,
  'ignore-optional': false,
  registry: 'https://registry.yarnpkg.com',
  'strict-ssl': true,
  'user-agent': 'yarn/1.22.21 npm/? node/v18.18.2 win32 x64'
}
info npm config
{
  registry: 'http://registry.npmmirror.com',
  prefix: 'D:\\Tools\\Node\\node_global',
  cache: 'D:\\Tools\\Node\\node_cache'
}
Done in 0.07s.