首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为自己的npm注册中心配置保存前缀

如何为自己的npm注册中心配置保存前缀
EN

Stack Overflow用户
提问于 2019-01-11 10:22:37
回答 1查看 975关注 0票数 5

我将保存前缀默认配置为添加“^”作为版本前缀。这对于我从npmjs安装的包(非作用域和作用域)来说很好。但是,对于来自我自己的注册表(维达乔)的包,它没有附加前缀:

代码语言:javascript
复制
> npm install --save @my-scope/my-package
> cat package.json
...
"dependencies": {
  "@my-scope/my-package": "0.0.42",
}

这个问题中我了解到,保存前缀是本地的,不受注册表或package.json的影响。

是否必须在本地配置注册表的保存前缀?如果是:如何/在哪里?

关于为什么在我自己的注册表中没有为包加上“^”的其他想法吗?

我的.npmrc看起来是这样的:

代码语言:javascript
复制
@oblamatik:registry=https://npm.dev.***********.ch
//npm.dev.oblamatik.ch/:_password="***************"
//npm.dev.oblamatik.ch/:username=ci
//npm.dev.oblamatik.ch/:email=ci@***********.ch
//npm.dev.oblamatik.ch/:always-auth=true
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-15 05:38:49

目前,npm将表单0.0.x的版本视为无效的SemVer (https://npm.community/t/save-prefix-is-not-prepended-for-major-version-0/4618)。

我在那份错误报告中表达了我的异议,但就目前而言,答案是:

不要在npm中使用0.1.0以下的版本。

即使他们是有效的SemVer作为SemVer规范2.0.0,npm对待他们的不同。作为参考,这是npm开发人员在其错误报告上发布的代码摘录:

代码语言:javascript
复制
if (isRegistry(requested)) {
    var version = child.package.version
    var rangeDescriptor = ''
    if (semver.valid(version, true) &&
        semver.gte(version, '0.1.0', true) &&
        !npm.config.get('save-exact')) {
      rangeDescriptor = npm.config.get('save-prefix')
    }
    return rangeDescriptor + version
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54144560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档