node.js - 为什么我不能将 @bundled-es-modules/chai 别名为 chai?

标签 node.js npm alias

通常在 NPM 中,您可以使用别名安装包,如下所示:

npm i alias@npm:real-package-name

作为引用,这里是宣布别名功能的地方:https://npm.community/t/release-npm-6-9-0/5911

b7b54f2d1 413 #3 530 Add support for package aliases. This allows packages to be installed under a different directory than the package name listed in package.json, and adds a new dependency type to allow this to be done for registry dependencies. (@zkat 50)

这允许您使用别名而不是真实名称导入/require包:

import foo from 'alias'

但是,当我尝试使用 ESM 捆绑版本的 Chai 执行此操作时:

npm i --save-dev chai@npm:bundled-es-modules/chai

我收到错误“别名仅适用于注册表部门”...但我根本找不到有关该错误实际含义的任何信息。这是完整的堆栈跟踪:

25 verbose stack Error: aliases only work for registry deps
25 verbose stack     at fromAlias (/usr/local/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:270:11)
25 verbose stack     at resolve (/usr/local/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:70:12)
25 verbose stack     at npa (/usr/local/lib/node_modules/npm/node_modules/npm-package-arg/npa.js:52:10)
25 verbose stack     at /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:406:31
25 verbose stack     at Array.map (<anonymous>)
25 verbose stack     at Arborist.[add] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:405:28)
25 verbose stack     at Arborist.[applyUserRequests] (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:390:23)
25 verbose stack     at Arborist.buildIdealTree (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:207:37)
25 verbose stack     at async Promise.all (index 1)
25 verbose stack     at async Arborist.reify (/usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:123:5)

任何人都可以解释这个错误的含义,以及为什么我不能为该包添加别名(或者如果可以,我做错了什么)?

最佳答案

我假设您想要别名这个命名空间/作用域包 @bundled-es-modules/chai安装过程中。

在这种情况下添加 @包的符号前缀 <name>安装命令的一部分。例如

npm i --save-dev chai@npm:@bundled-es-modules/chai
                          ^

npm-install文档为 alias 命令提供了以下概要:

npm install <alias>@npm:<name>

本质上,@作用域包的前缀是包 <name> 的一部分.

关于node.js - 为什么我不能将 @bundled-es-modules/chai 别名为 chai?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66735379/

相关文章:

node.js - 嵌套对象查询到 Prisma 中的单个数组

ruby-on-rails - 什么是 gem 安装 bundler ?

node.js - npm install错误4058,无法在windows中安装私有(private)模块

bash 别名不自动完成与别名相同

javascript - 是否可以在不引用流的情况下取消管道对象

node.js - 无法在 ubuntu 16.04 的 80 端口运行我的 Node 应用程序

node.js - 组件未显示在页面上

mysql - 我可以强制 Yii 在生成的 SQL 中使用特定的别名吗

c++ - 是否可以给枚举类枚举器起别名?

javascript - 如何在 PhpStorm 中将 `.js` 火设置为 Node