【问题标题】:NPM Install fails - fseventsNPM 安装失败 - fsevents
【发布时间】:2018-01-17 10:08:30
【问题描述】:

我无法在我的 laravel 项目中正确安装 npm。我在一个流浪盒子(ubuntu-trusty-64)上运行 laravel。当我运行“npm install”时,我的 pastebin 中出现了第一个错误(链接如下)。然后我在下面的某个地方发现,在 Windows 主机操作系统上使用 vagrant box 时,我应该在没有符号链接的情况下运行它,所以我运行了“npm install --no-bin-links”,但仍然出现第一个错误。因此,在一些帮助下,我运行了“rm -rf node_modules”,然后运行了“npm install --no-bin-links”,它似乎可以工作,但在 pastebin 的后半部分挂起。

请帮忙!

粘贴箱:https://pastebin.com/wuRkjqi6

更新:

只是为了更新大家的状态,我完全删除了 npm 并重新安装了它:

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

对于 node.js 8

然后我通过 virtualbox 绕过 vagrant ssh 直接从主机 vm 运行 'sudo npm install --no-bin-links --verbose';但它仍然轰炸我;这次出错了。但仍然围绕 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 ]

最后我今天早上尝试从头开始重建 vagrant box,当我从 virtualbox 主机重新运行 'sudo 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" 依赖行时出现。

【问题讨论】:

  • 我在这个模块中遇到了同样的问题。
  • 你是否也在偶然使用 vagrant?
  • 是的。我可以通过删除--no-bin-links 来解决这个问题。我以管理员身份运行我的 vagrant 机器,我相信这也可能是一个必要的组件。

标签: node.js laravel npm vagrant npm-install


【解决方案1】:

npm install --no-optional 帮助了我,但它只是在躲避问题。

【讨论】:

  • --no-optional 参数将阻止安装可选依赖项。
【解决方案2】:

使用 vagrant 我可以通过删除 --node-bin-links 并以管理员身份运行我的 vagrant box 来解决这个问题。我使用的 node 和 npm 版本大致相同。

【讨论】:

    【解决方案3】:

    我能够通过放弃 npm 并使用 yarn 来克服我的问题。似乎通过 fsevents 模块将其作为可选依赖项读取。鉴于我的研究,似乎 fsevents 在 linux 上不受支持。

    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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-04
      • 2012-12-07
      • 1970-01-01
      • 2018-06-06
      • 2020-10-31
      相关资源
      最近更新 更多