1. ホーム
  2. node.js

[解決済み] NPM は依存関係をインストールできません - ロックされていないものをロック解除しようとする

2022-04-13 13:08:24

質問

package.jsonファイルに対してnpm installを実行しようとしているのですが、問題が多発しています。 エラーメッセージが出続けます。 Attempt to unlock XXX, which hasn't been locked"と、すべての依存ファイルに表示されます。 これはそのうちの1つです。

Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
        at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
        at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
        at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
        at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
        at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
        at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
        at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
        at Object.oncomplete (fs.js:107:15)

sudoとして実行しようとすると、さらに進んでいくつかのパッケージのインストールを開始するようですが、代わりにいくつかの新しいエラーがポップアップします。

> [email protected] postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:811
    var cwd = process.cwd();
                      ^
Error: EACCES, permission denied
    at Function.startup.resolveArgv0 (node.js:811:23)
    at startup (node.js:58:13)
    at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back  [email protected] { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'

最近、nodeとnpmのインストールを更新しました。 だから、多分それが関係しているのでしょう。 また、私の開発のほとんどはオフィスで行われ、今日はVPNで作業しているので、もしかしたらそれも関係しているかもしれません。

何か思い当たることはありますか?

解決方法は?

にあるphotusenigmaの通り。 https://github.com/npm/npm/issues/4815

ターミナルウィンドウでこれらのコマンドを実行します(注意 - $USER の部分を置き換えないでください...これはユーザーを取得するための Linux コマンドです!)。

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

...そして...もしあなたがMacを使っていて(私のように)、これらのコマンドを実行してもまだエラーが出る場合は、最後のコマンドを実行すれば大丈夫でしょう。(このコマンドを実行する前にテストしてみることをお勧めします。本当に必要だと思われない限り、/usr/local ディレクトリ全体のパーミッションを変更するのは好きではありません!)

sudo chown -R $USER /usr/local