加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何为自己的npm注册表配置save-prefix

发布时间:2020-12-14 05:34:40 所属栏目:Windows 来源:网络整理
导读:我默认配置了 save-prefix,以添加’^’作为版本前缀.这适用于我从npmjs安装的(unscoped和scoped)包.但是对于来自我自己的注册表( verdaccio)的包,它不会附加前缀: npm install --save @my-scope/my-package cat package.json..."dependencies": { "@my-scop
我默认配置了 save-prefix,以添加’^’作为版本前缀.这适用于我从npmjs安装的(unscoped和scoped)包.但是对于来自我自己的注册表( verdaccio)的包,它不会附加前缀:

> npm install --save @my-scope/my-package
> cat package.json
...
"dependencies": {
  "@my-scope/my-package": "0.0.42",}

从this question我了解到,save-prefix是本地的东西,不受注册表或package.json的影响.

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

关于为什么’^’没有为我自己的注册表中的包添加前缀的任何其他想法?

我的.npmrc看起来像这样:

@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

解决方法

目前,npm将0.0.x形式的版本视为不是有效的SemVer( https://npm.community/t/save-prefix-is-not-prepended-for-major-version-0/4618).

我在该错误报告中表达了我的不同意见,但就目前而言,答案是:

不要使用低于0.1.0的版本和npm.

尽管从SemVer specification 2.0.0开始它们是有效的SemVer,但是npm以不同的方式对待它们.作为参考,这是npm开发人员在他们的错误报告中发布的代码摘录:

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读