web-dev-qa-db-ja.com

npmインストールで「ETXTBSY:テキストファイルがビジーです」というエラー

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

  • ボックス 'laravel/Homestead'(v3.0.0)
  • ノード:v8.2.1
  • NPM:5.3.0

fseventsディレクトリを削除しようとしましたが、存在しません。

どうすれば修正できますか?

27
Martijn Imhoff

Npmバージョンを5.7.1にダウングレードすると、私にとってはうまくいきました。

ダウングレードに使用されるコマンド:npm install -g [email protected]

Win10、Vagrant、Ubuntu v14.04およびNode v8.11.4を使用しています

10
kpratihast

フロントエンドに対応するために変更したいときに、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の通知を受信することができました。

乾杯

24
Babak Bandpey

HomesteadではなくWindowsで「npm install」を発行するだけです。もちろん、それを行うにはWindows用のnpmをインストールする必要があります。

9
Wilson Wang

私は、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コマンドを使用してください。それは動作します。

これがあなたのお役に立てば幸いです...

8

同じことが私に起こった

私の環境はLinuxです

fseventsはmac専用のモジュールです

次のコマンドを試してください

npm install --no-optional

8
horikeso

フォローを行った後でも、まだエラーが発生していました

  config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, 
     "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
  end

Babak Bandpey が示唆するとおり

ファイルパスの文字制限のもう一つの厄介な問題があることが判明しました。これは、長い名前のノードモジュールを使用している場合に頻繁に発生します。これを簡単に解決するには、Vagrant sshをLinux VMに追加した後、次の手順を実行します。

  1. ホームフォルダーmkdir ~/node_modulesに「node_modules」フォルダーを作成します
  2. プロジェクトフォルダ内に作成した「node_modules」フォルダにシンボリックリンクを追加します

    ln -sf ~/node_modules /vagrant/your-project-folder

このソリューションにより、すべてのノードモジュールが同期フォルダーではなくホームディレクトリ内に保存されるようになります。元のソース: https://blog.rudylee.com/2014/10/27/symbolic-links-with-vagrant-windows/

それが似たような問題を抱えている人に役立つことを願っています、ありがとう!

5
Azhar Khattak

私もこれに対する解決策を見つけるのに苦労していますが、ここにあります。

  1. 必ずノードを最新バージョンに更新してください

更新するには、nをインストールできます

Sudo npm install -g n

それからちょうど:

Sudo n latest
  1. Nodeスクリプトを設定して、プラットフォーム間で環境変数を使用します

Vagrant runで:

npm install --save-dev cross-env
npm install 
npm run dev 

それはトリックでしたが、私は丸一日、適切な解決策を見つけました( https://www.npmjs.com/package/cross-env

3
XFaramir

「npm install」にも問題があり、Windows 10を使用しています。最後に修正しました。「vagrant ssh」を終了して「vagrant box update」を実行し、「npm install」が動作しました。 「vagrant ssh」から「vagrant box update」と「npm install」を実行したことに注意してください。それが役に立てば幸い。

3
Janet W.

最初にnode_modulesフォルダーを削除する必要があり、次に削除しました

Sudo chmod a+x .

マシン上で何かをする特権を得たことを確認してから、

Sudo npm install --no-bin-links

これらのVMはビンリンクをサポートしていないので、私の経験から迷惑メールにビンリンクは必要ありません(間違っている場合は修正してください)。それから私はただ

Sudo npm run dev

この時点で、cross-env foundエラーが発生しない場合があります。その場合は、package.jsonファイルのcross-envを削除して、もう一度実行してください。それは私のために働いたが、一部の人々はまだ同じ問題に遭遇します。試してみる価値があるかもしれません。

1
Jayakusuma