Jest/Webpack/SWC:找不到模块(相对文件)

bbe*_*n09 7 webpack jestjs react-native swc-compiler

当尝试使用 Jest 启动服务器时,我不断收到错误:找不到模块“服务/中间件”。

在本例中,services/middleware位于src/services/middleware。

我已经在 jest 配置中设置了 moduleNameMapper 选项,所以我不确定是什么仍然导致了错误。

webpack.config.js

module.exports = (env) => {
  return {
    mode: MODE,
    externalsPresets: { node: true },
    externals: [nodeExternals()],
    node: {
      global: true,
      __filename: false,
      __dirname: false,
    },
    watch: !isProduction,
    resolve: {
      alias: {
        services: path.resolve(__dirname, 'src', 'services'),
      },
    },
    module: {
      rules: [
        {
          test: /\.(js|jsx)$/,
          exclude: /node_modules/,
          loader: 'swc-loader',
        },
      ],
    },
  };
};
Run Code Online (Sandbox Code Playgroud)

和

jest.config.js

module.exports = {
  testEnvironment: 'node',
  transform: {
    '^.+\\.(t|j)sx?$': '@swc/jest',
  },
  rootDir: '.',
  moduleDirectories: ['node_modules', 'src'],
  globalSetup: './tests/config/globalSetup.js',
  globalTeardown: './tests/config/globalTeardown.js',
  moduleNameMapper: {
    '^services(.*)$': '<rootDir>/src/services$1',
  },
  moduleFileExtensions: ['js', 'jsx'],
};
Run Code Online (Sandbox Code Playgroud)