小编Byr*_*pez的帖子

Web Worker - 玩笑 - 无法在模块外部使用“import.meta”

我正在开发一个nextjs 10.1.3内置的网络应用程序。我们实施了一个网络工作人员来提高其中一个页面的性能,并且计划继续添加更多工作人员;此外,所有代码都经过了正确的单元测试,并且使用worker-loader以前的 webpack 版本(第 4 版及以下版本)我们能够对其进行测试。

随着新的 webpack 5 版本,worker-loader不再需要该插件;相反,使用新版本加载 Web Worker 的方法是new Worker(new URL("@/workers/task.worker.js", import.meta.url));

这样做,我的代码可以按预期工作npm build && npm start;但是,当我尝试添加相应的单元测试时,出现以下错误:Cannot use 'import.meta' outside a module并且所有发生的事情都是因为import.meta.url用于在浏览器中添加工作人员的位置。

我在网上读了很多有关的帖子,babel但我想摆脱这个选项。还有其他选择来嘲笑import.meta.url笑话吗?

任何帮助将非常受欢迎。这是当前的配置。

包.json

{
  ...
    "@babel/core": "^7.8.6",
    "next": "^10.1.3",
    "react": "^16.13.0",
    "webpack": "^5.37.1"
    "devDependencies": {
        ...
        "enzyme": "^3.11.0",
        "enzyme-adapter-react-16": "^1.15.2",
        "jest": "^24.9.0",
        "jest-cli": "^25.1.0",
        ...
    }
  ...
}
Run Code Online (Sandbox Code Playgroud)

next.config.js

const {
...
} = process.env;

const …
Run Code Online (Sandbox Code Playgroud)

reactjs webpack jestjs babel-jest next.js

6
推荐指数
1
解决办法
7395
查看次数

标签 统计

babel-jest ×1

jestjs ×1

next.js ×1

reactjs ×1

webpack ×1