新建create-react-app项目后运行npm start出现ELIFECYCLE错误

12
使用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 

尝试删除node-module文件夹并运行npm install。
9个回答

46

在终端中输入 unset HOST 命令,这将解决该问题。


3
这个对我来说解决了。 - sarnabtech
2
它做什么? - sid
我们使用 $'unset 变量名' 来暂时删除任何本地环境变量。 - Rafi Ud Daula Refat
工作得很好,太棒了!! - Mathias Asberg

4

我也曾为此问题苦恼了一整天。如果你使用 unset HOST 命令,它可以解决问题,但只是暂时的。这个bug的简单解决方案如下(以下是Mac的操作指南,Windows的命令可能有所不同):

  1. 用以下命令打开你的bash终端:open ~/.bash_profile
  2. 在文件打开后,在文件末尾写下如下内容(确保完全一致):HOST="localhost"
  3. 保存文件并退出(Command + q)
  4. 最后,在终端输入以下命令重新加载环境:source ~/.bash_profile

如果你正确地执行了以上所有步骤,这个bug应该会被解决。


2
大多数情况下,问题出现在您设置特定的主机名而不是常用的localhost时。 在Mac / Linux终端上运行hostname,您将收到指定的主机名。 如果它与localhost不同,请参考您的bash配置文件(例如对于ZSH,它是.zshrc,对于Bash,它是.bashrc在您的主目录中); 如果HOST = localhost存在于配置文件中,则将其注释掉。 PS:不要忘记重新启动终端以使更改生效。

1
我也曾为此苦恼。许多在线解决方案只解决了第一部分。在这里,我将提供完全解决问题并使npm start工作的方法。
了解问题:
问题有两个部分。首先,您想将环境变量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 install。确保fsevent的版本为2.0+!希望能有所帮助。这肯定需要一些时间来调试!参考资料:
  1. dyld: 懒惰符号绑定失败: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

0
我通过运行npm install create-react-app而不是npm install -g create-react-app成功解决了类似的错误。希望能对你有所帮助。


0

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

但是,为了使react服务器正常运行,您需要将登录名设置为计算机登录ID。(例如xxx@)

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

  1. 运行unset HOST,它将消除终端登录ID中@符号后面的字符串。
  2. 将HOST添加为终端配置文件的环境变量。对于zsh用户(最可能是因为mac现在在终端中默认运行zsh),您需要将export HOST="localhost"或export HOST=""添加到~/.zshrc,并在终端中运行source ~/.zshrc以刷新新的zsh配置。您可以通过上面的答案之一来按照相同的方式对bash配置文件进行操作。

祝你好运。


0
unset HOST

这对我有用,如果不行的话,就运行代码并重新启动它


是的,那确实是正确的方法。 - Mathias Asberg

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

当我们在终端中写入npm start时,就会出现此问题。为了在执行命令npm start之前在终端中纠正此问题,请先写入unset HOST,然后再写入命令npm start,它将正常工作,并且您可以在localhost://3000上进行检查。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接