Closed2

jest の transformIgnorePatterns を設定していて pnpm を使っている場合は transformIgnorePatterns を見直す必要がある

uttkuttk

jest には transformIgnorePatterns というオプションがあり、主に特定の node_modules を transform 対象にする場合に使用します。

よくある例としては、esm で書かれたパッケージを commonjs でも require 出来るようにする場合などです👇

jest.config.js
/** @type {import('jest').Config} */
const config = {
  transform: {
    "^.+\\.(j|t)s$": '@swc/jest'
  },

  // esm-package を swc で commonjs に変換する
  transformIgnorePatterns: ['/node_modules/(?!esm-package)'],
};

module.exports = config;

上記の設定は、通常のパッケージマネージャー( yarn v1, npm ) などを使用している場合は特に問題ありませんが、pnpm ではパッケージをnode_modules/.pnpmフォルダー下に配置する場合があるため、それを考慮した設定にする必要があります👇

jest.config.js
  /** @type {import('jest').Config} */
  const config = {
    transform: {
      "^.+\\.(j|t)s$": '@swc/jest'
    },

    // esm-package を swc で commonjs に変換する
+   transformIgnorePatterns: ["node_modules/(?!(?:.pnpm/)?esm-package)"],
  };

  module.exports = config;
このスクラップは2022/12/22にクローズされました