如何从Artifactory中删除一个版本的npm包



使用此命令,返回200:

npm unpublish myapp@"0.1.23" --verbose --registry https://myapp.jfrog.io/artifactory/api/npm/myapp/

日志:

$ npm --force unpublish myapp@"0.1.23" --verbose --registry https://myapp.jfrog.io/artifactory/api/npm/myapp/
npm verb cli [
npm verb cli   '/home/me/.nvm/versions/node/v12.16.0/bin/node',
npm verb cli   '/home/me/.nvm/versions/node/v12.16.0/bin/npm',
npm verb cli   '--force',
npm verb cli   'unpublish',
npm verb cli   'myapp@0.1.23',
npm verb cli   '--verbose',
npm verb cli   '--registry',
npm verb cli   'https://myapp.jfrog.io/artifactory/api/npm/myapp/'
npm verb cli ]
npm info using npm@7.6.3
npm info using node@v12.16.0
npm timing config:load:defaults Completed in 1ms
npm timing config:load:file:/home/me/.nvm/versions/node/v12.16.0/lib/node_modules/npm/npmrc Completed in 1ms
npm timing config:load:builtin Completed in 1ms
npm timing config:load:cli Completed in 2ms
npm timing config:load:env Completed in 0ms
npm timing config:load:file:/home/me/d/altinn-studio/.npmrc Completed in 1ms
npm timing config:load:project Completed in 1ms
npm timing config:load:file:/home/me/.npmrc Completed in 0ms
npm timing config:load:user Completed in 0ms
npm timing config:load:file:/home/me/.nvm/versions/node/v12.16.0/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 0ms
npm timing config:load:cafile Completed in 0ms
npm timing config:load:validate Completed in 1ms
npm timing config:load:setUserAgent Completed in 0ms
npm timing config:load:setEnvs Completed in 0ms
npm timing config:load Completed in 6ms
npm WARN using --force Recommended protections disabled.
npm verb npm-session f8603b074437ff3e
npm timing npm:load Completed in 14ms
npm http fetch GET 304 https://myapp.jfrog.io/artifactory/api/npm/myapp/myapp?write=true 405ms (from cache)
npm http fetch PUT 200 https://myapp.jfrog.io/artifactory/api/npm/myapp/myapp/-rev/1-0 198ms
npm http fetch GET 304 https://myapp.jfrog.io/artifactory/api/npm/myapp/myapp?write=true 71ms (from cache)
npm http fetch DELETE 200 https://myapp.jfrog.io/artifactory/api/npm/myapp/artifactory/api/npm/myapp/myapp/-/myapp-0.1.23.tgz/-rev/1-0 45ms
- myapp@0.1.37
npm timing command:unpublish Completed in 733ms
npm verb exit 0
npm timing npm Completed in 853ms
npm info ok 
~/myapp

但是软件包版本并没有从UI中消失。当我从UI中删除它时,该版本将被删除,并且当我执行npm v myapp versions --registry https://myapp.jfrog.io/artifactory/api/npm/myapp/时,删除的版本不会列出。

首先,您需要获得要取消发布的包或其特定版本的链接,该链接应该指向.tgz文件。

示例:https://artifacts-z.something.com/artifactory/npm-local/.npm/%40some-level/something/%40backbase/something-<VERSION>.tgz

然后得到一个有足够权限进行删除的用户,

然后你可以对这个端点做一个curl请求,如下所示:

curl -X DELETE -u <USER>:<PASSWORD> <LINK TO THE TGZ file>

我建议尝试一下,这会删除这个特定的版本,只是不是npm,你几乎可以使用curl来删除JFrog中的每个包。

我并不认为这可能只适用于您,因为不同组织中的JFrog设置可能不同,而且在大多数地方它的使用方式相似,因此值得尝试这种方法。

最新更新