使用“csv-parse/sync”库后 Jest 测试失败

问题描述 投票:0回答:2

我将 NestJs 与 Nx.dev 一起用于 monorepo。在我安装了 csv-parse/sync 并使用我的 Jest 测试后,它不再工作了。

Jest encountered an unexpected token

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

By default "node_modules" folder is ignored by transformers.

Here's what you can do:
 • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
 • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
Details:

    /home/username/project/node_modules/csv-parse/lib/sync.js:2
    import { Parser } from './index.js';

我尝试点击上面的链接,但没有成功。有人遇到同样的问题吗?

typescript jestjs nestjs monorepo node-csv-parse
2个回答
3
投票

将行添加到 jest.config.json,或 package.json 中的 jest 配置

    "moduleNameMapper": {
      "^csv-parse/sync": "<rootDir>/node_modules/csv-parse/dist/cjs/sync.cjs"
    }

0
投票

对我有用的是将 @user19306150 中的行添加到我的 jest.config.js:

  "moduleNameMapper": {
      "^csv-parse/sync": "<rootDir>/node_modules/csv-parse/dist/cjs/sync.cjs"
    }

这里还链接到有关 moduleNameMapper 的笑话文档: https://jestjs.io/docs/configuration#modulenamemapper-objectstring-string--arraystring

© www.soinside.com 2019 - 2024. All rights reserved.