首页 > 解决方案 > 创建一个像 [name]/[second_name] 这样的 NPM 包?name 只能包含 URL 友好字符。“[second_name]”在哪里添加?

问题描述

当我尝试创建一个 NPM 包时,有人可以解释如何在斜线后面添加一个包吗?

例如,如果您创建一个包,您可以使用:

npm init

然后当您填写名称时,它会不断给出错误提示,如果我在选择名称时在其中包含“/”,则名称只能包含 URL 友好字符。

如果我更改 NPM 名称,请说我成功了:

测试名称

我可以将它上传到 NPM 包存储库。

但如果我添加

测试名称/测试名称2

它会说该名称包含非法字符。您不能使用名称中带有“/”的任何内容。

那么有人可以向我解释一下,如何将“/testname2”添加到 NPM 包名称中?我已经搜索谷歌几个小时试图找到它。

我能找到的最好的在这里:https ://docs.npmjs.com/creating-node-js-modules

对于“作用域模块”,您可以添加

npm init --scope=@scope-name

通过https://docs.npmjs.com/about-scopes

但是,当我运行它时,它不会更改 package.json 文件。该文件看起来仍然与其他文件相同,但没有引用父文件的“作用域”名称。

“/”后面的内容是父目录中的文件吗?

标签: node.jsnpm

解决方案


NPM 包只能包含字母数字字符。您看到的“嵌套”包名称(即@bugsnag/plugin-vue)是存在于 NPM 组织中的包。所以前面提到的是一个名为的包plugin-vue,它存在于一个名为@bugsnag. 您不能在包名称中任意嵌套,例如foo/bar.


推荐阅读