Skip to content

[BUG] npm publish uses different registry then npm unpublish #559

@mbazalik

Description

@mbazalik

What / Why

This seems to be a duplicate of npm/npm#3032 even though the last comment claims the problem is resolved

In short, when the package contains both .npmrc and publishConfig setup it seems that npm publish is respecting setup from publishConfig while npm unpublish is using .npmrc

When

The project is using both .npmrc to define which registry to use to pull packages from and publishConfig to define to which registry the package should be pushed to

Example:
.npmrc

@dazn:registry=https://example.com/ 

package.json

{ ... "name": "@dazn/daznid", "version": "2.0.1-rc00002", "publishConfig": { "@dazn:registry": "https://registry.npmjs.org/", "access": "restricted" }, ... }

npm publish --loglevel verbose output:

npm publish --loglevel verbose npm info it worked if it ends with ok npm verb cli [ '/usr/local/bin/node', npm verb cli '/usr/local/bin/npm', npm verb cli 'publish', npm verb cli '--loglevel', npm verb cli 'verbose' ] npm info using npm@6.11.3 npm info using node@v10.17.0 npm verb npm-session 7920cfe554e24b7a npm verb publish [ '.' ] npm info lifecycle @dazn/daznid@2.0.1-rc00002~prepublish: @dazn/daznid@2.0.1-rc00002 npm info lifecycle @dazn/daznid@2.0.1-rc00002~prepare: @dazn/daznid@2.0.1-rc00002 npm info lifecycle @dazn/daznid@2.0.1-rc00002~prepublishOnly: @dazn/daznid@2.0.1-rc00002 npm WARN lifecycle @dazn/daznid@2.0.1-rc00002~prepublishOnly: cannot run in wd @dazn/daznid@2.0.1-rc00002 npm run build:prod (wd=.) npm info lifecycle @dazn/daznid@2.0.1-rc00002~prepack: @dazn/daznid@2.0.1-rc00002 npm info lifecycle @dazn/daznid@2.0.1-rc00002~postpack: @dazn/daznid@2.0.1-rc00002 npm notice npm notice package: @dazn/daznid@2.0.1-rc00002 npm notice === Tarball Contents === npm notice 314B dist/index.html npm notice 21.8kB dist/daznid.js npm notice 1.3kB package.json npm notice 1.3kB README.md npm notice 117B CHANGELOG.yml npm notice === Tarball Details === npm notice name: @dazn/daznid npm notice version: 2.0.1-rc00002 npm notice package size: 9.4 kB npm notice unpacked size: 24.8 kB npm notice shasum: 94bbabe79081807a6d768a9eb5debf282a969c00 npm notice integrity: sha512-6GW6ARu37UeAm[...]gSjZ6cxVvXkRw== npm notice total files: 5 npm notice npm http fetch PUT 200 https://registry.npmjs.org/@dazn%2fdaznid 3769ms npm info lifecycle @dazn/daznid@2.0.1-rc00002~publish: @dazn/daznid@2.0.1-rc00002 npm WARN lifecycle @dazn/daznid@2.0.1-rc00002~publish: cannot run in wd @dazn/daznid@2.0.1-rc00002 npm run publish:ftp & git push --tags (wd=.) npm info lifecycle @dazn/daznid@2.0.1-rc00002~postpublish: @dazn/daznid@2.0.1-rc00002 + @dazn/daznid@2.0.1-rc00002 npm verb exit [ 0, true ] npm timing npm Completed in 4073ms npm info ok 

npm unpublish -f --loglevel verbose @dazn/daznid@2.0.1-rc00002

npm info it worked if it ends with ok npm verb cli [ '/usr/local/bin/node', npm verb cli '/usr/local/bin/npm', npm verb cli 'unpublish', npm verb cli '-f', npm verb cli '--loglevel', npm verb cli 'verbose', npm verb cli '@dazn/daznid@2.0.1-rc00002' ] npm info using npm@6.11.3 npm info using node@v10.17.0 npm WARN using --force I sure hope you know what you are doing. npm verb npm-session 9f0285a83a8cd55c npm http fetch GET 401 https://example.com/@dazn%2fdaznid?write=true 105ms npm verb stack Error: Unable to authenticate, need: Basic realm="Artifactory Realm" npm verb stack at res.buffer.catch.then.body (/usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/check-response.js:94:17) npm verb stack at process._tickCallback (internal/process/next_tick.js:68:7) npm verb statusCode 401 npm verb pkgid @dazn/daznid@2.0.1-rc00002 npm verb cwd /drone/src/github.com/getndazn/com-daznid npm verb Linux 4.14.128-87.105.amzn1.x86_64 npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "unpublish" "-f" "--loglevel" "verbose" "@dazn/daznid@2.0.1-rc00002" npm verb node v10.17.0 npm verb npm v6.11.3 npm ERR! code E401 npm ERR! Unable to authenticate, need: Basic realm="Artifactory Realm" npm verb exit [ 1, true ] npm timing npm Completed in 328ms npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-12-05T15_17_19_217Z-debug.log 

Where

  • npm enterprise

Current Behavior

npm publish uses registry defined in publishConfig
NOTICE npm http fetch PUT 200 https://registry.npmjs.org/@dazn%2fdaznid 3769ms in above example

npm unpublish uses registry defined in .npmrc
NOTICE npm http fetch GET 401 https://example.com/`@dazn%2fdaznid?write=true 105ms

Steps to Reproduce

See above

Expected Behavior

npm publish and npm unpublish to use same setup (preferably one which allow to have different registry for pull and push)

Who

  • n/a

References

Related to npm/npm#3032

Metadata

Metadata

Assignees

No one assigned

    Labels

    Bugthing that needs fixing

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions