如何为自己的 npm 注册表配置保存前缀

迈克尔·K

默认配置了保存前缀,以添加“^”作为版本前缀。这适用于我从 npmjs 安装的(无作用域和有作用域的)包。但是,对于来自我自己的注册表 ( verdaccio ) 的包,它不会附加前缀:

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

这个问题我了解到,保存前缀是一个本地的东西,不受注册表或 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
迈克尔·K

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

我在那个错误报告中表达了我的不同意见,但现在,答案是:

不要将 0.1.0 以下的版本与 npm 一起使用。

尽管它们在SemVer 规范 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
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2015中配置私有NPM和Bower注册表

如何仅为特定项目设置npm注册表

如何列出npm将使用的所有注册表?

我应该如何设置私人npm注册表?

NPM配置列表:环境配置-注册表

如何在没有我自己的注册表的情况下安装私有NPM模块?

如何从npm注册表中删除npm软件包?

ng-add&npm链接-如何模拟npm注册表

如何为ionic 2发布自己的npm模块?

如何为 Quarkus 原生镜像构建指定我自己的注册表?

npm audit不断返回“您配置的注册表(https://registry.npmjs.org/)不支持审核请求。”。我如何使其重新工作?

如何在package.json中具有来自不同注册表的npm依赖关系?

如何在package.json文件中指定项目npm注册表

如何在Webpack构建的应用程序中导入不在npm注册表上的库?

NPM:如何在命令行中指定要发布的注册表?

在使用git remote url进行npm安装时如何指定注册表?

如何在 npm install 中为范围包添加注册表

如何将 AWS S3 用于 npm 注册表(nodeJs AWS Lambda)

TypeScript NPM 包如何将自己注册为 tsc?

如何为jenkins传递凭据以将docker映像推送到我自己的注册表中?

如何从注册表项中提取配置单元和注册表名称

私有 npm 注册表的 npm 安装失败

NPM 在“审核修复”上引发错误 - 不支持配置的注册表

使用令牌注册表将NPM全局配置为特定范围(@organisation)

您配置的注册表不支持审核请求〜在npm审核时

如何为样式配置自己的快捷方式?

如何为特定项目覆盖全局纱线注册表

NPM注册表安装在非注册表依赖项上失败

纱线注册表和npm注册表之间的区别