2020年2月へ

npm で苦戦中(20年2月)

公開日:

最終更新日:

要約

WindowsのPowerShellでnpmを使ってパッケージをインストールしようとした際に、node-sassが原因のパーミッションエラーが発生。問題はnpm run serveでサーバーを起動したままだったためで、一度サーバーを停止してからnpm installを実行すると正常に完了した。OSに関わらず冷静な対処が重要であると述べている。

  • npm
  • node-sass
  • Windows
  • PowerShell
  • パーミッションエラー
  • node_modules
  • サーバー停止
  • パッケージ管理
  • トラブルシューティング
  • OS差別

WindowsのPowerShellにて。
npmでインストールする際にエラーが頻発して、進まないようになる。

verbose stack Error: EPERM: operation not permitted, unlink '~node_modules\.node-sass.DELETE\vendor\win32-x64-72\binding.node'
verbose cwd ~
verbose Windows_NT 10.0.18363
verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "jquery"
verbose node v12.14.0
verbose npm  v6.13.4
error code EPERM
error syscall unlink
error path ~node_modules\.node-sass.DELETE\vendor\win32-x64-72\binding.node
error errno -4048

node-sass」が邪魔をしているっぽいです。
おそらく、下のページと同じ症状。
https://traveler0401.com/npm-install-operation-not-permitted/

ただ、nodeのバージョンを落とすのも面倒なので、一度環境を見直してみる。

「node_modules」フォルダを丸ごと消して、再度インストールすればパーミッションもなんも問題ないかなと思ったところ、現在、「npm run serve」でサーバーを走らせていることに気付く。

早速そちらを停止して、再度「npm install」をたたいたところ、エラーなく終了。なるほど。

> npm install
audited 33791 packages in 4.978s

38 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

「Windowsはこれがあるからいやだ!」

なんて思っていたけれど、おそらくMacでも起こっていたでしょう。
OS差別は良くないですね。落ち着いて、見直すことが大事。