创建NPM包时名称含斜杠报错 如何配置带作用域的斜杠格式包名
NPM包名带斜杠的配置方法
NPM 中唯一合法的带斜杠包名格式是作用域包(Scoped Modules),格式为 @作用域名/包名,你之前直接填写 Testname/testname2 报错是因为缺少作用域必备的@前缀,不符合命名规范。
常见问题原因
你之前运行初始化命令后package.json没有生成带作用域名的包名,大概率是两种情况:
- 运行
npm init --scope时没有传入完整的带@的作用域名 - 初始化交互过程中没有确认使用生成的带作用域的默认包名,手动修改成了普通名称
正确配置步骤
- 先确认你的作用域名:作用域名是你NPM的个人用户名,或是你在NPM平台创建的组织名,必须以
@开头,比如你的NPM用户名为king,作用域就是@king - 两种配置方式任选即可:
- 初始化时自动生成:运行命令
npm init --scope=@你的作用域名 -y,生成的package.json中name字段会自动设置为@你的作用域名/项目文件夹名 - 手动修改:直接打开package.json文件,找到
name字段,手动修改为符合规范的格式即可,示例:{ "name": "@king/testname2", "version": "1.0.0" }
- 初始化时自动生成:运行命令
- 发布注意事项:公开作用域包发布时需要添加公开参数,命令为
npm publish --access public,否则默认会按私有包处理,需要开通NPM付费服务才能发布。
斜杠前后字段说明
- 斜杠前面:带
@前缀的作用域名,用来标记包的所属主体,避免和公共库的包名冲突 - 斜杠后面:你自定义的包名称,符合普通NPM包命名规则即可
内容的提问来源于stack exchange,提问作者king
相关产品推荐
相关产品推荐

