npm publish /path/to/tarball/from/npm-pack.tgz
ようなコマンドを使用すると、npmは次のエラーでエラーになります。
$ npm publish ./dr-js-core-0.4.0-dev.8.tgz
npm ERR! code ENOTDIR
npm ERR! syscall open
npm ERR! path ./dr-js-core-0.4.0-dev.8.tgz/package.json
npm ERR! errno -20
npm ERR! ENOTDIR: not a directory, open './dr-js-core-0.4.0-dev.8.tgz/package.json'
npm ERR! A complete log of this run can be found in:
npm ERR! /home/dr/.npm/_logs/2020-10-26T08_40_37_321Z-debug.log
そしてログファイル:[/home/dr/.npm/_logs/2020-10-26T08_40_37_321Z-debug.log]
0 verbose cli [
0 verbose cli '/usr/bin/node',
0 verbose cli '/usr/bin/npm',
0 verbose cli 'publish',
0 verbose cli './dr-js-core-0.4.0-dev.8.tgz'
0 verbose cli ]
1 info using [email protected]
2 info using [email protected]
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:/usr/lib/node_modules/npm/npmrc Completed in 1ms
5 timing config:load:builtin Completed in 1ms
6 timing config:load:cli Completed in 2ms
7 timing config:load:env Completed in 0ms
8 timing config:load:file:/home/dr/Git/dr-js/.npmrc Completed in 0ms
9 timing config:load:project Completed in 1ms
10 timing config:load:file:/home/dr/.npmrc Completed in 2ms
11 timing config:load:user Completed in 2ms
12 timing config:load:file:/usr/etc/npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 3ms
16 timing config:load:setUserAgent Completed in 0ms
17 timing config:load:setEnvs Completed in 1ms
18 timing config:load Completed in 12ms
19 verbose npm-session 27bc3b1b0c2cde0a
20 timing npm:load Completed in 23ms
21 verbose publish [ './dr-js-core-0.4.0-dev.8.tgz' ]
22 timing command:publish Completed in 20ms
23 verbose stack Error: ENOTDIR: not a directory, open './dr-js-core-0.4.0-dev.8.tgz/package.json'
24 verbose cwd /home/dr/Git/dr-js
25 verbose Linux 5.9.1-arch1-1
26 verbose argv "/usr/bin/node" "/usr/bin/npm" "publish" "./dr-js-core-0.4.0-dev.8.tgz"
27 verbose node v15.0.1
28 verbose npm v7.0.5
29 error code ENOTDIR
30 error syscall open
31 error path ./dr-js-core-0.4.0-dev.8.tgz/package.json
32 error errno -20
33 error ENOTDIR: not a directory, open './dr-js-core-0.4.0-dev.8.tgz/package.json'
34 verbose exit -20
tarballを公開するだけでよいのですが、現在npmは、これがnpm pack
を実行するフォルダーであると考えているようです。
以下でテストできるはずです:
`` `シェルスクリプト
mkdir -p ./test-npm-publish
cd ./test-npm-publish
npm init--yes
npmパック
npm公開テスト-npm-publish-1.0.0.tgz
### Environment:
<!--
ex.
- OS: Ubuntu 20.04
- Node: 13.14.0
- npm: 6.4.12
-->
25冗長Linux5.9.1-arch1-1
27冗長ノードv15.0.1
28冗長npmv7.0.5
`` `
現在のウォークアラウンドは、スイッチバックしてnpm@6
公開することです。
`` `シェルスクリプト
npm i -g npm @ 6
or use `npx` as a manual temp fix:
```shell script
npx npm<strong i="10">@6</strong> publish ./dr-js-core-0.4.0-dev.8.tgz --tag dev --access public
両方ともテストされ、動作するはずです。
これは私たちが意図的にサポートをやめたものでしたが、強い原則的な理由ではなく、誰かがそれを使用しているかどうか確信が持てなかっただけです。 とにかくlibnpmpublishで行うべき他の小さな修正がいくつかあるので、そのサポートを取り戻すことができてうれしいです。
これはごく最近修正されました。最新リリースで再試行してください。
最も参考になるコメント
これは私たちが意図的にサポートをやめたものでしたが、強い原則的な理由ではなく、誰かがそれを使用しているかどうか確信が持てなかっただけです。 とにかくlibnpmpublishで行うべき他の小さな修正がいくつかあるので、そのサポートを取り戻すことができてうれしいです。