我使用的是 Verdaccio,它是一个用 Node.js 构建的轻量级私有 npm 代理注册表
当我将代码发布到 verdaccio 时,它总是出现错误:
日志文件关键字: 15 通知 === Tarball 详细信息 === 16 通知名称:canwin-viewer3d 16 通知版本:1.0.0 16 通知包大小:21.9 MB 16 通知解压大小:50.4 MB 16 通知 shasum:63d555be03e0c7a7b6dcdfb662d29c48b21d8c53 16通知完整性:sha512-KFz0gTPJusdfV[...]VIeII6rrcv4IA== 16 通知总文件:733 17 通知 18 http fetch PUT 413 http://localhost:4873/canwin-viewer3d 677ms 19 详细堆栈错误:413 Payload Too Large - PUT http://localhost:4873/canwin-viewer3d - 请求实体太大 19 详细堆栈位于 C:\Program Files\nodejs\node_modules\npm\node_modules\npm-registry-fetch\check-response.js:104:15 19 processTicksAndRejections 处的详细堆栈 (internal/process/task_queues.js:97:5) 20 详细 statusCode 413 21 详细 pkgid canwin-viewer3d@1.0.0 22 详细 cwd C:\work\viewer3d 23 详细 Windows_NT 10.0.18363 24 详细 argv " C:\Program …
我正在向 Verdaccio 发布 angular 包以在公司内部使用。突然,我发现我的一个包丢失了,当我运行 npm install 时,它给我一个错误,说找不到那个特定的模块。当我检查 verdaccio UI 时,它也不存在,然后我检查了托管 Verdaccio 的服务器,该包文件夹中没有包 json 文件,但所有 .tgz 文件都在那里。 所有 tgz 文件
有没有办法根据它的存储内容重做它的所有 package.json 文件?
Verdaccio 版本 -4.0.4
我有一个需要身份验证的下游 Sinopia 存储库,我想在 Artifactory 中将其设置为远程 npm 存储库。我如何向 Artifactory 提供遥控器的凭据?
我已经将save-prefix配置为默认添加'^'作为版本前缀。这对于我从npmjs安装的(无作用域和作用域)软件包非常有效。但是,对于来自我自己的注册表(verdaccio)的软件包,它不会附加前缀:
> npm install --save @my-scope/my-package
> cat package.json
...
"dependencies": {
"@my-scope/my-package": "0.0.42",
}
Run Code Online (Sandbox Code Playgroud)
从这个问题中我了解到,保存前缀是本地的,不受注册表或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
Run Code Online (Sandbox Code Playgroud) 尝试通过运行一个简单的命令与正在运行的 docker 容器进行通信curl
:
curl -v -s -X POST http://localhost:4873/_session -d \'name=some\&password=thing\'
Run Code Online (Sandbox Code Playgroud)
在任何 shell(登录/交互式)中都可以正常工作,但在脚本中执行时却惨遭失败:
temp=$(curl -v -s -X POST http://localhost:4873/_session -d \'name=some\&password=thing\')
echo $temp
Run Code Online (Sandbox Code Playgroud)
错误输出提示连接重置:
* Trying 127.0.0.1:4873...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 4873 (#0)
> POST /_session HTTP/1.1
> Host: localhost:4873
> User-Agent: curl/7.68.0
> Accept: */*
> Content-Length: 29
> Content-Type: application/x-www-form-urlencoded
>
} [29 bytes data]
* upload completely sent off: 29 out of 29 bytes
* Recv failure: Connection reset by …
Run Code Online (Sandbox Code Playgroud) 我使用npm unpublish <package-name>@<version-xx>
取消发布了版本,但找不到从 verdaccio 的(本地)ui 中删除版本的方法?
任何的想法 ?
是否有可能发布标记为私有Verdaccio包而不删除private:true
的package.json
?
NPM 文档说我们也可以publishConfig
用来确保包只发布到特定目录,但没有如何配置它的示例:
所以,我已经verdaccio
在我的本地机器上托管了。我在上面发布了一些软件包以及版本。我想要做的是,清除所有这些软件包及其版本。就像重置我的verdaccio
. 我可以通过命令取消发布软件包npm unpublish
,但这会花费我一些时间,因为有很多版本。我知道这里存在类似的问题Question,但它并不能解决我的问题。
总而言之,有没有一种方法可以让我verdaccio
一步(或两步)或任何命令从本地删除所有包?基本上是一个更快的方法。
我刚刚在我的计算机上安装了 Verdaccio。除了添加 proxy_相关信息之外,我没有更改配置文件中的任何内容:
http_proxy: http://proxy.ip:8080
https_proxy: https://proxy.ip:8080
no_proxy: localhost,127.0.0.1
Run Code Online (Sandbox Code Playgroud)
启动该过程后,我尝试从库项目工作区登录注册表
npm adduser --registry http://localhost:4873
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
npm ERR! 503 Service Unavailable - POST http://localhost:4873/-/v1/login
Run Code Online (Sandbox Code Playgroud)
如果我尝试从浏览器访问http://localhost:4873/,我可以看到 Verdaccio 网页。
我究竟做错了什么?
我正在寻找这与注册表之间的一些比较,有人尝试过两者吗?
为什么我应该使用一个或另一个?
每个注册表的优缺点是什么?
我有以下设置
问题是,由于注册表在主机上的端口上运行,因此无法从构建脚本生成的构建库的 docker 容器中的 docker 访问它。我没有找到有关如何在 jenkinsfile 中执行类似 --net="host" (来自 docker run)之类的操作的信息。我想这会起作用吗?
知道如何改进通过节点 docker 容器构建的设置,但能够发布到注册表吗?