Nadeem Shukoor
Nadeem Shukoor

Reputation: 353

Jest gives ReferenceError: require is not defined

I am new to Angular and couldn't find solution for past 3 days, I am usig [email protected] and [email protected], I also downgraded and tested in LTS versions of node and npm and I get same error.

my jest.config.js file is as below:

// For a detailed explanation regarding each configuration property, visit:
// https://jestjs.io/docs/en/configuration.html
const tsconfig = require("./tsconfig.json")
const moduleNameMapper = require("tsconfig-paths-jest")(tsconfig)
module.exports = {
  collectCoverage: true,
  reporters: [
    "default",
    [
      "jest-junit",
      {
        "suiteName": "jest tests",
        "outputDirectory": ".",
        "outputName": "junit.xml",
        "uniqueOutputName": "false",
        "classNameTemplate": "{classname}-{title}",
        "titleTemplate": "{classname}-{title}",
        "ancestorSeparator": " › ",
        "usePathForSuiteName": "true"
      }
    ]
  ],
  globals: {
    'ts-jest': {
      diagnostics: {
        ignoreCodes: [151001]
      },
      tsconfig: '<rootDir>/tsconfig.spec.json',
      stringifyContentPathRegex: '\\.html$',
      astTransformers: [
        'jest-preset-angular/build/InlineFilesTransformer',
        'jest-preset-angular/build/StripStylesTransformer'
      ]
    }
  },
  transform: {
    '^.+\\.(ts|js|html)$': 'ts-jest',
    "^.+\\.js$": "babel-jest"
  },
  setupFilesAfterEnv: ['<rootDir>/src/setup-jest.ts'],
  testEnvironment: 'jest-environment-jsdom-thirteen',
  moduleFileExtensions: ['ts', 'html', 'js', 'json'],
  moduleNameMapper,
  transformIgnorePatterns: ['node_modules/(?!@ngrx)'],
  snapshotSerializers: [
    'jest-preset-angular/build/AngularSnapshotSerializer.js',
    'jest-preset-angular/build/HTMLCommentSerializer.js'
  ],
};

Detailed error message is as below

ReferenceError: require is not defined
    at file:///C:/nad/projekte/a/a-ui/jest.config.js:3:18
    at ModuleJob.run (node:internal/modules/esm/module_job:146:23)
    at async Loader.import (node:internal/modules/esm/loader:165:24)
    at async readConfigFileAndSetRootDir (C:\nad\projekte\a\a-ui\node_modules\jest-config\build\readConfigFileAndSetRootDir.js:126:32)
    at async readConfig (C:\nad\projekte\a\a-ui\node_modules\jest-config\build\index.js:217:18)
    at async readConfigs (C:\nad\projekte\a\a-ui\node_modules\jest-config\build\index.js:406:26)
    at async runCLI (C:\nad\projekte\a\a-ui\node_modules\@jest\core\build\cli\index.js:230:59)
    at async Object.run (C:\nad\projekte\a\a-ui\node_modules\jest-cli\build\cli\index.js:163:37)
npm ERR! code 1
npm ERR! path C:\nad\projekte\a\a-ui
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c jest

Upvotes: 0

Views: 4609

Answers (1)

Nadeem Shukoor
Nadeem Shukoor

Reputation: 353

Finally found the solution, renaming my jest.config.js file to jest.config.cfs, fixed the issue. Please find the explanation in this stackoverflow thread.

Upvotes: 3

Related Questions