最近、以前勉強していたReactやnodejsを再勉強中。
そこである日、
npm install
や
npx create-react-app
を実行したところ、
ERR! code ENOTSUP npm ERR! syscall symlink npm ERR! path ../mime/cli.js npm ERR! errno -95 npm ERR! ENOTSUP: operation not supported on socket, symlink '
といったエラーが発生してしまいました。
今回は本エラー発生の原因とその解決方法を調べたので備忘録として残しておきたいと思います。
■現象発生原因
このエラーは、nasサーバーを
mount -t cifs
でマウントしたマウント先のディレクトリでのみ発生しており、
別ディレクトリでは問題なくnpm installやnpx create-react-appは実行出来ている。
このため、コマンドが実行出来ていないわけではなさそう。。
そこで調べてみると気になるやり取りを発見。
github.com
読んでみるとリンクが作成出来ないことが起因しているエラーっぽい?
ということで試しに、test.txtファイルを作成した上で
ln -s test.txt test2.txt
を実行。
すると、
ln: シンボリックリンク 'test2.txt' の作成に失敗しました: サポートされていない操作です
とエラーが発生しシンボリックリンクが作成出来ない。
確かにリンク作成が出来ないことが起因してエラーが発生しているもよう。
■解決方法
エラーの原因がリンク作成できなかったことが起因しているので、
リンクを作成しないようにコマンドを実行すれば良さそう。
ということで、先ほどのwebページ(github issue)を確認してみると、
-
- no-bin-linksオプションを付けるとリンク作成せずにコマンドの実行が出来るそう。
ということで、それぞれ
npm install --no-bin-links
や
npx create-react-app --no-bin-links
とオプションを付与して実行してみたところ、
エラーが発生せずインストール出来ることを確認。
何とか使用できるようになって満足。
■最後に
今回はnpmやnpxを実行した時にsymlinkのエラーに対する対応方法をまとめました。
なぜリンクが作成できなかったのか?、リンクを作成するためにはどうすればよいか?に関しては継続して調査するとして、、、
まずは、
npm install
や
npx create-react-app
が使えるようになったので良かった。