我将保存前缀默认配置为添加“^”作为版本前缀。这对于我从npmjs安装的包(非作用域和作用域)来说很好。但是,对于来自我自己的注册表(维达乔)的包,它没有附加前缀:
> 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发布于 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开发人员在其错误报告上发布的代码摘录:
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
}https://stackoverflow.com/questions/54144560
复制相似问题