首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JEST - SyntaxError: uuid库中的意外令牌“导出”

JEST - SyntaxError: uuid库中的意外令牌“导出”
EN

Stack Overflow用户
提问于 2022-08-02 07:13:08
回答 2查看 6.3K关注 0票数 21

在使用Jest时,我常常只使用JavaScript来解决类似的错误,但是目前我无法用类型记录来解决这些错误。

在我安装@types/jest-environment-puppeteer@types/puppeteer@types/expect-puppeteer之前,我所有的测试都运行良好。

在安装它们之后,傀儡机测试运行良好,但其他测试开始失败,错误如下。

代码语言:javascript
运行
复制
  D:\...\api\node_modules\uuid\dist\esm-browser\index.js:1    
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){export { default as v1 } from './v1.js';
                                                                                      ^^^^^^  

    SyntaxError: Unexpected token 'export'

      at Runtime.createScriptFromCode (../node_modules/jest-runtime/build/index.js:1796:14)   
      at Object.require (../node_modules/@nestjs/common/decorators/core/injectable.decorator.js:4:16)

我做了什么?

allowJs: truetsconfig.json上,transformIgnorePatterns在开玩笑上吐露。因此,jest可以在此错误停止后从node_modules/编译文件,但由于另一个奇怪的原因,测试失败了。更糟糕的是,测试开始时间增加太多了。

因此,我离开了allowJs,就像在最初的安装中一样,并从

代码语言:javascript
运行
复制
"transform": {
   "^.+\\.(t|j)s$": "ts-jest"
}

代码语言:javascript
运行
复制
"transform": {
   "^.+\\.(t)s$": "ts-jest"
}

因此,目前ts-jest不编译js文件。但我认为我无法让babel为js文件选择转换。这些都是我开玩笑的吐露:

代码语言:javascript
运行
复制
{
  "moduleFileExtensions": ["js", "json", "ts"],
  "rootDir": ".",
  "testEnvironment": "node",
  "testRegex": ".e2e-spec.ts$",
  "transform": {
    "^.+\\.(t)s$": "ts-jest",
    "^.+\\.(js|jsx)$": "babel-jest"
  },
  "transformIgnorePatterns": ["<rootDir>/node_modules/.+.(js|jsx)$"]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-02 07:47:44

感谢您的回复:https://stackoverflow.com/a/54117206/15741905

我开始在googling上搜索类似的修补程序,最后在这里结束:https://github.com/uuidjs/uuid/issues/451

这解决了我的问题:https://github.com/uuidjs/uuid/issues/451#issuecomment-1112328417

代码语言:javascript
运行
复制
// jest.config.js
{
//................
  moduleNameMapper: {
    // Force module uuid to resolve with the CJS entry point, because Jest does not support package.json.exports. See https://github.com/uuidjs/uuid/issues/451
    "uuid": require.resolve('uuid'),
  }
}

如果能用玩笑解决这个问题,我还是会很高兴的。

因为我不得不把开玩笑的吐露从package.json带到一个独立的.js文件。

编辑:根据这个github问题兼容性问题,uuid库的最新版本已经解决了这个问题。

票数 46
EN

Stack Overflow用户

发布于 2022-09-06 18:26:52

简单地将moduleNameMapper:{"^uuid$": "uuid"}添加到我的jest.config.js中就可以解决这个问题:

瞬态依赖项uuid:^8.3.2

jest:28.1.3

:14.0.1

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73203367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档