自M91起,SharedArrayBuffer将需要跨域隔离,大约在2021年5月

通过创建npx create-react-appReact应用程序并运行它时,DevTools(Chrome 88 和 89)中会弹出警告:

scheduler.development.js:298 [Deprecation] 自 M91 起,即 2021 年 5 月左右,SharedArrayBuffer 将需要跨源隔离。有关更多详细信息,请参阅
https://developer.chrome.com/blog/enabling-shared-array-buffer/。

环境

  current version of create-react-app: 4.0.1
  running from /Users/mahdi/.npm/_npx/25767/lib/node_modules/create-react-app
  Binaries:
    Node: 14.15.4 - ~/.nvm/versions/node/v14.15.4/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.10 - ~/.nvm/versions/node/v14.15.4/bin/npm
  Browsers:
    Chrome: 88.0.4324.96
    Edge: 87.0.664.66
    Firefox: 84.0
    Safari: 14.0.2
  npmPackages:
    react: ^17.0.1 => 17.0.1
    react-dom: ^17.0.1 => 17.0.1
    react-scripts: Not Found
  npmGlobalPackages:
    create-react-app: Not Found

重现步骤

  1. npx create-react-app myapp
  2. cd myapp && npm start Open
  3. Chrome 88 或 89 中的http://localhost:3000,常规或隐身模式
  4. 打开 DevTools:显示警告

有解决此警告的建议吗?

回答

reactreact-dom版本更新17.0.1为 ==>17.0.2可以解决此问题。

您只需要npm update在命令提示符或 bash 中运行,希望您会看到package.json文件中的更改。(yarn upgrade react --latest并且yarn upgrade react-dom --latest如果你想升级到坚持到package.json

这是应用更新后来自我的应用程序的 git 报告:

  • We still get this error even though we've updated to 17.0.2 for react and react-dom and have restarted dev server
  • I too can still the error after updating 17.0.2 and restarting the server

回答

如警告所示,Chrome 将需要从版本 91 开始跨域隔离才能使用 SharedArrayBuffer。据我所知,除了等待反应更新之外,您无法解决警告。

其他人也有这个问题,你可以在这里和这里看到

该问题已在此拉取请求中修复,但尚未发布。

编辑:它现在在 react 的 17.0.2 版中得到修复。


回答

实际上更新react-dom到最新版本后我解决了这个问题,react单独没有解决它:

npm i react@latest react-dom@latest

或者

yarn add react@latest react-dom@latest


回答

对于那些还没有准备好升级到 v17 的人(由于其他遗留库),一个简单的解决方法是将以下代码放在你的任何部分 index.html

    <script>
      // See https://github.com/facebook/react/issues/20829#issuecomment-802088260
      if (!crossOriginIsolated) SharedArrayBuffer = ArrayBuffer;
    </script>


以上是自M91起,SharedArrayBuffer将需要跨域隔离,大约在2021年5月的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>