ReactJS开发服务器无法在MacOS Catalina上启动

时间:2020-03-25 20:56:02

标签: node.js reactjs macos create-react-app fsevents

我正在尝试使用create-react-app创建一个新的reactjs项目。当我执行yarn start时,开发服务器无法启动,控制台向我显示此消息:

Starting the development server...

dyld: lazy symbol binding failed: Symbol not found: _FSEventStreamCreate
  Referenced from: /Users/username/project/node_modules/fsevents/build/Release/fse.node
  Expected in: flat namespace

dyld: Symbol not found: _FSEventStreamCreate
  Referenced from: /Users/username/project/node_modules/fsevents/build/Release/fse.node
  Expected in: flat namespace

error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

这种情况发生在新创建的reactjs项目中,而不是旧版本中。 我使用brew install node安装并重新安装了nodejs,也没有重新安装create-react-app。

有关我的环境的信息:

  1. OS:macOS Catalina,版本10.15.4(19E266)
  2. 节点:v13.11.0
  3. create-react-app:版本3.4.1
  4. yarn:版本1.22.4
  5. npm:版本6.13.7

预先感谢您提供完美的答案

4 个答案:

答案 0 :(得分:2)

删除其中的fsevents文件夹/文件夹。 “ node_modules”在MacOS Mojave上为我工作。 如果删除一个fsevent目录后,它仍然失败,请在错误中显示的当前路径中删除fsevents文件夹。

答案 1 :(得分:2)

删除为我工作的node_modules / webpack-dev-server内的fsevent文件夹。

答案 2 :(得分:1)

问题再次发生。为了解决这个问题,我只需要冲煮website并复制安装程序代码/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)",然后一切都会恢复工作

答案 3 :(得分:1)

我遇到类似的错误,不是在使用React时,而是在Phoenix和Elixir时。由于此问题是错误消息Symbol not found: _FSEventStreamCreate的唯一搜索结果之一,因此,我将分享我的问题和解决方案:

我正在使用MacOS Mojave 10.14.6,并试图使用Elixir 1.9.4 (compiled with Erlang/OTP 22),Phoenix v1.4.10创建Phoenix应用程序。问题是实时重新加载变得很麻烦:即使我没有进行任何更改,我的页面也不断刷新。

在服务器输出中,我发现这样的事情一遍又一遍:

[error] Task #PID<0.1149.0> started from RumblWeb.Endpoint terminating
** (stop) :watcher_command_error
    (phoenix) lib/phoenix/endpoint/watcher.ex:29: Phoenix.Endpoint.Watcher.watch/3
    (elixir) lib/task/supervised.ex:90: Task.Supervised.invoke_mfa/2
    (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3
Function: &Phoenix.Endpoint.Watcher.watch/3
    Args: ["node", ["node_modules/webpack/bin/webpack.js", "--mode", "development", "--watch-stdin"], [cd: "/Users/george/code/phoenix/programming_phx/rumbl/assets"]]

Webpack is watching the files…

...

dyld: lazy symbol binding failed: Symbol not found: _FSEventStreamCreate
  Referenced from: /Users/george/code/phoenix/programming_phx/rumbl/assets/node_modules/fsevents/build/Release/fse.node
  Expected in: flat namespace

dyld: Symbol not found: _FSEventStreamCreate
  Referenced from: /Users/george/code/phoenix/programming_phx/rumbl/assets/node_modules/fsevents/build/Release/fse.node
  Expected in: flat namespace

即webpack出现错误,导致页面重新编译和重新加载,但是这些错误的来源与dyldfsevents有关。

我不明白错误的含义,但是将我的node版本从v12.10.0升级到v13.13.0可以解决此问题。

(不要忘记重新启动phoenix服务器,并确保运行mix phx.server的终端窗口正在使用新的节点版本。)