搜索此错误会带我进入各种特定于模块的问题报告/解决方案,但我无法使用它们。但很明显,这是一个 React 热重载的问题,我想知道如何解决它,因为它阻止了我在 Web Workers 中使用我的应用程序代码。
我的开发依赖项如下:
"devDependencies": {
"@babel/core": "^7.12.10",
"@babel/preset-env": "^7.11.11",
"@babel/preset-typescript": "^7.12.7",
"@testing-library/react": "^11.2.3",
"@types/classnames": "^2.2.11",
"@types/color": "^3.0.1",
"@types/d3": "^6.2.0",
"@types/history": "4.7.8",
"@types/jest": "^26.0.20",
"@types/lodash": "^4.14.168",
"@types/node": "^14.14.22",
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"@types/react-test-renderer": "^17.0.0",
"@types/react-window": "^1.8.2",
"@types/resize-observer-browser": "^0.1.5",
"@types/selenium-webdriver": "^4.0.11",
"@types/topojson": "^3.2.2",
"@types/uuid": "^8.3.0",
"@types/ws": "^7.4.0",
"@typescript-eslint/eslint-plugin-tslint": "^4.14.0",
"acorn": "^8.0.5",
"antlr4ts-cli": "^0.5.0-alpha.4",
"eslint": "^7.18.0",
"eslint-plugin-flowtype": "^5.2.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsdoc": "^31.3.3",
"eslint-plugin-jsx-a11y": "^6.4.1",
"eslint-plugin-prefer-arrow": "^1.2.2",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
"identity-obj-proxy": "^3.0.0",
"jest": "26.6.0",
"jest-transform-stub": "^2.0.0",
"jest-websocket-mock": "^2.2.0",
"mock-socket": "^9.0.3",
"monaco-editor-webpack-plugin": "^1.9.1",
"monaco-typescript": "^4.2.0",
"raw-loader": "^4.0.2",
"react-app-rewired": "^2.1.8",
"react-scripts": "^4.0.3",
"react-test-renderer": "^17.0.1",
"selenium-webdriver": "^4.0.0-beta.1",
"ts-jest": "^26.5.2",
"tslint": "^6.1.3",
"typescript": "^4.1.3",
"typescript-eslint-parser": "22.0.0",
"webdriver-manager": "^12.1.8",
"webpack": "4.44.2",
"webpack-bundle-analyzer": "^4.4.0",
"worker-loader": "^3.0.8",
"ws": "^7.4.3"
},
我唯一能应用的有前途的解决方案是:https://github.com/pmmmwh/react-refresh-webpack-plugin/issues/176#issuecomment-683150213,但它没有帮助到我。 我仍然遇到同样的错误。 我的Web Worker代码如下:
/* eslint-disable no-restricted-globals */
/* eslint-disable no-eval */
/* eslint-disable @typescript-eslint/no-unused-vars */
(window as any).$RefreshReg$ = () => {/**/};
(window as any).$RefreshSig$ = () => () => {/**/};
import { ShellInterfaceSqlEditor } from "../../supplement/ShellInterface";
import { PrivateWorker, ExecutionResultType, IConsoleWorkerData } from "./console.worker-types";
const backend = new ShellInterfaceSqlEditor();
const ctx: PrivateWorker = self as any;
关于更改babel loader配置的进一步讨论,恐怕我无能为力,因为我自己不进行配置(但我正在使用react-app-rewired来配置一些自定义loader)。
还有什么其他方法可以尝试修复这个问题吗?