npm在新的create-react-app构建上启动,返回ELIFECYCLE错误

时间:2018-12-24 10:16:36

标签: reactjs macos npm terminal

使用create-react-app制作了一个新的react应用,现在在运行npm start时在终端中出现以下错误:

> react-scripts start

Attempting to bind to HOST environment variable: x86_64-apple-darwin13.4.0
If this was unintentional, check that you haven't mistakenly set it in your shell.


events.js:167
      throw er; // Unhandled 'error' event
  ^

Error: getaddrinfo ENOTFOUND x86_64-apple-darwin13.4.0
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
Emitted 'error' event at:
    at GetAddrInfoReqWrap.doListen [as callback] (net.js:1468:12)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! aqi@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the aqi@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely      additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/chris/.npm/_logs/2018-12-24T10_07_46_970Z-debug.log 

试图删除节点模块文件夹并安装npm。

9 个答案:

答案 0 :(得分:1)

在终端中输入unset HOST。它将解决问题。

答案 1 :(得分:1)

我也为此感到挣扎。许多在线解决方案仅解决了第一部分。在这里,我将提供我的方法来完全解决问题并使npm开始工作

了解问题所在:

问题有两个部分。首先,您要将环境变量HOST设置为“ localhost”。您可以通过在任何地方键入终端来做到这一点:

  1. nano〜/ .bash_profile
  2. 在bash文件中,在新行中键入HOST="localhost",然后键入:export HOST。默认情况下,这会将您的程序定向到该主机。
  3. 通过Ctrl + X保存更改,然后按Y(是),然后按Enter
  4. 返回您的终端,运行:source ~/.bash_profile刷新终端

现在,您的计算机已将其HOST变量更新为localhost。您可以通过在终端中输入:env | grep HOST来进行检查。 Grep的意思是在变量列表中获取该变量。

希望这可以完全解决问题。如果您随后遇到:dyld: lazy symbol binding failed.

这只是意味着fsevents出了点问题。为什么?我不确定,但是可以确定的解决方法是从搜索中删除node_modules / fsevent文件。永久性的解决方法是删除节点模块并重新执行npm安装。确保fsevent是2.0+版本!

希望有帮助。这肯定要花一些时间进行调试!

参考:

  1. dyld: lazy symbol binding failed: Symbol not found: _node_module_register
  2. https://medium.com/@choy/fixing-create-react-app-when-npm-fails-to-start-because-your-host-environment-variable-is-being-4c8a9fa0b461
  3. https://medium.com/@youngstone89/setting-up-environment-variables-in-mac-os-28e5941c771c

答案 2 :(得分:0)

我能够通过运行npm install create-react-app而不是npm install -g create-react-app来解决类似的错误。希望对您有所帮助。

答案 3 :(得分:0)

答案 4 :(得分:0)

我整整一天都在努力解决这个确切的问题。如果您未设置HOST,它将暂时解决该问题。此错误的简单解决方案如下(对于Mac,这对于Windows,命令可能有所不同):

  1. 使用以下命令打开bash:打开〜/ .bash_profile
  2. 在文件打开后,将其完全写下来(准确地说):HOST =“ localhost”
  3. 之后,保存文件并退出(Command + q)
  4. 最后,通过在终端上键入以下内容来重新加载环境: 来源〜/ .bash_profile

如果正确执行所有步骤,则应该可以解决该错误。

答案 5 :(得分:0)

通常,当您设置特定的hostname而不是常规使用的localhost时,就会发生此问题。

在运行hostname的Mac / Linux终端上,您将收到指定的主机名。如果与localhost有所不同,请参考您的bash profile config file(例如,对于ZSH,它是.zshrc;对于Bash,它是.bashrc。 );并在个人资料中添加HOST=localhost注释。

PS:别忘了重启终端以使更改生效。

答案 6 :(得分:0)

unset HOST

这对我有用,如果没有,请运行代码并重新启动

答案 7 :(得分:0)

我遇到了这个问题,因为我通常在终端中默认运行anaconda。因此,我的登录不仅是我的计算机登录帐户,还附加了conda创建的一些字符串。 (例如xxx @ xxx)

但是,为了使React Server正常运行,您需要将登录名作为计算机登录ID。 (例如xxx @)

有两种解决方案可以实现这一目标。

  1. 要运行未设置的HOST,它将删除终端登录ID中@处的字符串。
  2. 将HOST作为env var添加到您的终端配置文件中。对于zsh用户(最有可能的cos mac现在现在在终端中默认运行zsh),您需要将export HOST =“ localhost”或export HOST =“”添加到〜/ .zshrc并在终端中运行源〜/ .zshrc进行刷新新的zsh配置。您可以按照上述答案之一对bash配置文件执行相同的操作。

祝你好运。

答案 8 :(得分:0)

尝试绑定到 HOST 环境变量:x86_64-apple-darwin13.4.0 如果这是无意的,请检查您是否在 shell 中错误地设置了它。

一旦我们在终端中编写 npm start 就会出现这个问题,在执行命令 npm start write unset HOST 之前纠正终端中的问题,然后编写命令 npm start 它工作正常,您可以检查 localhost://3000< /p>