我无法在我的laravel项目中正确安装npm。我在流浪盒上运行laravel(ubuntu-trusty-64)。当我跑'npm install'我在我的pastebin中遇到了第一个错误(链接如下)。然后我发现在下面的某个地方我应该在没有符号链接的情况下运行它,当在Windows主机操作系统上使用一个流浪盒时,然后我运行了“npm install --no-bin-links'我还是得到了第一个错误。然后在一些帮助下我跑了rm -rf node_modules'然后运行' npm install --no-bin-links'它似乎工作但挂起看到了pastebin的后半部分。
请帮忙!
更新:
为了更新每个人的状态,我完全删除了npm并重新安装了以下内容:
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
for node.js 8
然后我跑了'sudo npm install --no-bin-links --verbose'直接从主机vm通过virtualbox绕过vagrant ssh;但它仍然轰炸着我;这次出错了。但仍然围绕着fsevents。
27990 info lifecycle vue@2.4.2~postinstall: vue@2.4.2
27991 verbose unlock done using /home/vagrant/.npm/_locks/staging-71408633a969dee2.lock for /home/vagrant/projects/MusekClub/node_modules/.staging
27992 verbose stack Error: ETXTBSY: text file is busy, rmdir '/home/vagrant/projects/MusekClub/node_modules/fsevents/node_modules'
27993 verbose cwd /home/vagrant/projects/MusekClub
27994 verbose Linux 3.13.0-125-generic
27995 verbose argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "--no-bin-links" "--verbose"
27996 verbose node v8.2.1
27997 verbose npm v5.3.0
27998 error path /home/vagrant/projects/MusekClub/node_modules/fsevents/node_modules
27999 error code ETXTBSY
28000 error errno -26
28001 error syscall rmdir
28002 error ETXTBSY: text file is busy, rmdir '/home/vagrant/projects/MusekClub/node_modules/fsevents/node_modules'
28003 verbose exit [ -26, true ]
最后,我尝试今天早上从头开始重建流浪盒,当我重新跑步时,sud npm install --no-bin-links --verbose'从虚拟机主机我得到以下内容:
vagrant@vagrant-ubuntu-trusty-64:~/projects/MusekClub$ sudo npm install
npm ERR! path /home/vagrant/projects/MusekClub/node_modules/fsevents/build/Release/.deps/User/eshanker/Code/fsevents/lib
npm ERR! code ETXTBSY
npm ERR! errno -26
npm ERR! syscall rmdir
npm ERR! ETXTBSY: text file is busy, rmdir '/home/vagrant/projects/MusekClub/node_modules/fsevents/build/Release/.deps/Users/eshanker/Code/fsevents/lib'
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vagrant/.npm/_logs/2017-08-09T12_45_58_590Z-debug.log
我从默认的laravel 5.4 package.json文件中删除了标准依赖项。然后我逐个安装每一个。我发现我的问题只发生在安装" laravel-mix":" ^ 1.0"依赖行。
答案 0 :(得分:4)
我能够通过抛弃npm并利用纱线来克服我的问题。似乎通过fsevents模块读取它作为可选依赖项。鉴于我所研究的内容,似乎无论如何都不支持linux上的fsevents。
vagrant@vagrant-ubuntu-trusty-64:~/projects/MusekClub$ sudo yarn install
yarn install v0.27.5
Resolving packages...
Fetching packages...
warning fsevents@1.1.2: The platform "linux" is incompatible with this module.
info "fsevents@1.1.2" is an optional dependency and failed compatibility check.
Excluding it from installation.
Linking dependencies...
Building fresh packages...
Done in 67.15s.
答案 1 :(得分:1)
npm install --no-optional
帮助了我,但它只是在躲避这个问题。
答案 2 :(得分:0)
使用vagrant我可以通过删除--node-bin-links
并以管理员身份运行我的流浪盒来解决这个问题。我使用的是大致相同版本的节点和npm。