我正在尝试将一个范围内的npm包发布到Artifactory Online:my-company.jfrog.io/my-company
我遇到了这个SO Question中描述的相同问题,我发布了我的软件包@scope/my-package
并且它部署到Artifactory就好了,但它最终出现在Artifactory Online路径中:npm-internal/@scope/my-package/-/@scope/my-package-1.2.3.tgz
当我运行npm view @scope/my-package
时,我收到404错误:
npm ERR! 404 Not Found: @scope/my-package
在Artifactory中,可以移动包,因此我尝试从以下位置移动它:
npm-internal/@scope/my-package/-/@scope/my-package-1.2.3.tgz
到
npm-internal/@scope/my-package-1.2.3.tgz
并尝试npm view @scope/my-package
,获取包详情,然后执行npm install @scope/my-package
即可安装。
我在网上找到的每个答案都有一个解决方案,可以将Tomcat配置为AllowEncodedSlashed。是否有Artifactory Online等价物?
我已经翻遍了尽可能多的网络应用程序,因为我可以通过搜索找到任何类似于配置选项的内容,以便让它能够正常工作而一无所获。我没有找到任何搜索文档的内容。
答案 0 :(得分:1)
有两种方法可以将软件包部署到本地存储库:
编辑package.json文件并将publishConfig部分添加到本地存储库: “publishConfig”:{ “注册表”: “http://localhost:8081/artifactory/api/npm/npm-local/”}
为npm publish命令提供本地存储库: npm publish --registry http://localhost:8081/artifactory/api/npm/npm-local/
你可以deploy a packed npm package to a specific path in your registry。鉴于此,可以执行以下操作:
npm run build
npm pack dist/
npm publish scope-my-package-1.2.3.tgz --registry https://my-company.jfrog.io/my-company/api/npm/internal-npm/@scope/my-package/
npm view @scope/my-package
这很有效。现在可以查看新部署的软件包。