Homesteadでnpm install [any package]
またはnpm install
を実行すると、次のエラーが表示されます。
npm ERR! ETXTBSY: text file is busy, rmdir '/home/vagrant/valemus-shop-starter/valemus-shop/node_modules/fsevents'
デバッグログを表示できます here
fsevents
ディレクトリを削除しようとしましたが、存在しません。
どうすれば修正できますか?
Npmバージョンを5.7.1にダウングレードすると、私にとってはうまくいきました。
ダウングレードに使用されるコマンド:npm install -g [email protected]
Win10、Vagrant、Ubuntu v14.04およびNode v8.11.4を使用しています
フロントエンドに対応するために変更したいときに、Windows 10 + VirtualBox(VBox)+ Vagrant + Laravel Homesteadで同じことに遭遇しました。
そして、多くの検索と試行錯誤の後、このソリューションは私にとってはうまくいきました。おそらくあなたにとってもうまくいくでしょう。
放浪者を停止しました:
vagrant halt
HomesteadディレクトリのVagrantfileのconfigureセクションに次を追加しました
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
管理者としてcmdを開始しました
次にvagrant up
およびvagrant ssh
開発ディレクトリにcd
次に、rm -rf node_modules/
if anyによってnode_modulesディレクトリを削除しました
そしてSudo npm install && npm run dev
を実行しました
そして、警告やエラーなしですべてがインストールされました。
これは2時間の読書の結果です:)
編集:
問題が解決せず、上記のセットアップがある場合は、別のソリューションを使用できます。
NodeもWindowsマシンにインストールします
次に、開発ディレクトリにcdして、Windowsからnpm install
を実行すると、同じ結果が得られます。
後でWindowsコマンドからnpm run watch
を開始することもできます。
これにより、VMから負荷を取り除き、Windowsで監視を行い、npm run watch
の通知を受信することができました。
乾杯
HomesteadではなくWindowsで「npm install」を発行するだけです。もちろん、それを行うにはWindows用のnpmをインストールする必要があります。
私は、Homesteadを搭載したWindows 10マシンでこの問題に苦労しました。そして、多くの努力の後、私はその方法でそれを解決しました。
node_modulesフォルダーを削除します。
windows terminal:でこのコマンドを実行します
npm install --no-bin-links (After some experience it is necessary for virtual machines)
npm rebuild --no-bin links
通常、これらのコマンドの後に機能しますが、このエラーを受け取った場合
「Node Sassは現在の環境のバインディングを見つけることができませんでした:」
linux用のノードSassをインストールするためにHomestead Terminalでこのコマンドを実行してください。
npm rebuild node-sass
うまくいかない場合は、糸を使用してみてください。ノードモジュールフォルダーpackage.json.lockおよびyarn.lock(存在する場合)ファイルを削除し、入力します
yarn install
それらのすべてがあなたを救わないなら、仮想マシンからすべてのnpmコマンドを使用してください。それは動作します。
これがあなたのお役に立てば幸いです...
同じことが私に起こった
私の環境はLinuxです
fseventsはmac専用のモジュールです
次のコマンドを試してください
npm install --no-optional
フォローを行った後でも、まだエラーが発生していました
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id,
"VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
Babak Bandpey が示唆するとおり
ファイルパスの文字制限のもう一つの厄介な問題があることが判明しました。これは、長い名前のノードモジュールを使用している場合に頻繁に発生します。これを簡単に解決するには、Vagrant sshをLinux VMに追加した後、次の手順を実行します。
mkdir ~/node_modules
に「node_modules」フォルダーを作成しますプロジェクトフォルダ内に作成した「node_modules」フォルダにシンボリックリンクを追加します
ln -sf ~/node_modules /vagrant/your-project-folder
このソリューションにより、すべてのノードモジュールが同期フォルダーではなくホームディレクトリ内に保存されるようになります。元のソース: https://blog.rudylee.com/2014/10/27/symbolic-links-with-vagrant-windows/
それが似たような問題を抱えている人に役立つことを願っています、ありがとう!
私もこれに対する解決策を見つけるのに苦労していますが、ここにあります。
更新するには、nをインストールできます
Sudo npm install -g n
それからちょうど:
Sudo n latest
Vagrant runで:
npm install --save-dev cross-env
npm install
npm run dev
それはトリックでしたが、私は丸一日、適切な解決策を見つけました( https://www.npmjs.com/package/cross-env )
「npm install」にも問題があり、Windows 10を使用しています。最後に修正しました。「vagrant ssh」を終了して「vagrant box update」を実行し、「npm install」が動作しました。 「vagrant ssh」から「vagrant box update」と「npm install」を実行したことに注意してください。それが役に立てば幸い。
最初にnode_modulesフォルダーを削除する必要があり、次に削除しました
Sudo chmod a+x .
マシン上で何かをする特権を得たことを確認してから、
Sudo npm install --no-bin-links
これらのVMはビンリンクをサポートしていないので、私の経験から迷惑メールにビンリンクは必要ありません(間違っている場合は修正してください)。それから私はただ
Sudo npm run dev
この時点で、cross-env foundエラーが発生しない場合があります。その場合は、package.jsonファイルのcross-envを削除して、もう一度実行してください。それは私のために働いたが、一部の人々はまだ同じ問題に遭遇します。試してみる価値があるかもしれません。