Description
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