【问题标题】:Reactjs development server won't start on macos catalinaReactjs 开发服务器不会在 macos catalina 上启动
【发布时间】:2020-07-06 11:53:44
【问题描述】:

我正在尝试使用 create-react-app 创建一个新的 react.js 项目。当我执行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.

新创建的 react.js 项目会发生这种情况,而不是旧项目。 我使用brew install node 安装并重新安装node.js,我还重新安装了create-react-app,但没有任何反应。

关于我的环境的信息:

  1. 操作系统:macOS Catalina,版本 10.15.4 (19E266)
  2. 节点:v13.11.0
  3. create-react-app:版本 3.4.1
  4. 纱线:版本 1.22.4
  5. npm:版本 6.13.7

提前感谢您的完美回答

【问题讨论】:

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


    【解决方案1】:

    删除了对我有用的 node_modules/webpack-dev-server 中的 fsevent 文件夹。

    【讨论】:

    • 这对我有用。 MacOS Catalina 10.15.4。我基本上删除了 node_modules/webpack-dev-server/node_modules/fsevents 并开始工作。谢谢!
    【解决方案2】:

    删除里面的 fsevents 文件夹/文件夹。 'node_modules' 在 MacOS Mojave 上为我工作。 如果删除一个fsevent目录后仍然失败,则删除错误显示的当前路径下的fsevents文件夹。

    【讨论】:

      【解决方案3】:

      我遇到了类似的错误,不是在使用 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 的终端窗口正在使用新的更新版本的节点。)

      【讨论】:

      • 发布此答案几天后,我又开始遇到完全相同的错误。事实证明,新版本的 Node (14.0.0) 于 4 月 21 日发布。再次升级节点导致错误再次消失。
      • Argh,现在错误再次发生再次,我不知道为什么。请参阅我对这个 GitHub 问题的评论:github.com/fsevents/fsevents/issues/313
      • 更新:我还没有解决这个问题。在webpack-dev-server 的下一个版本发布之前,我不确定是否有修复;见github.com/fsevents/fsevents/issues/325github.com/webpack/webpack-dev-server/pull/2539。但是,我为 Phoenix 提出的解决方法是从 config/dev.exs 中注释掉 watchers: [ node: ... ] 部分。这意味着 webpack 将不再监视文件,这意味着您每次进行更改时都需要手动编译资源 - 但这是我目前发现的解决这个令人沮丧的问题的唯一方法。
      • 我在之前的评论中空间不足,但只是补充一下:要在 Phoenix 上手动编译您的资产,您可以运行 cd assets &amp;&amp; node node_modules/webpack/bin/webpack.js --mode development
      【解决方案4】:

      问题再次出现。为了解决这个问题,我只需去 brew website 并复制安装程序代码 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 然后一切正常

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-21
        • 1970-01-01
        • 2013-06-25
        相关资源
        最近更新 更多