Closed2
jest の transformIgnorePatterns を設定していて pnpm を使っている場合は transformIgnorePatterns を見直す必要がある
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;
参考
以下の Issue を参考にさせて頂きました 🙇♂️🙇♀️
このスクラップは2022/12/22にクローズされました