30

Is it possible to exclude all test files only for the build but use them with nodemon to run tests locally? When I exclude test files within the tsconfig.json file I get a typescript error that it can't find the types of the testing library like jest in my case.

Cannot find name 'describe'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha`.ts(2582)

{
  "compilerOptions": {},
  "exclude": [
    "**/*.test.ts"
  ]
}

I am wondering since I guess the temporary transpiling is put into another folder than the build folder.

skyboyer
  • 22,209
  • 7
  • 57
  • 64
thiloilg
  • 1,733
  • 2
  • 18
  • 23

1 Answers1

70

One possible solution would be to use two different tsconfig files, one for the tests and one for the production build.

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "outDir": "./build",
    "baseUrl": ".",
    "paths": {
      "*": ["types/*"]
    },
    "strict": true,
  }
}

tsconfig.prod.json

{
  "extends": "./tsconfig",
  "exclude": ["**/*.test.ts", "**/*.mock.ts"]
}

Then point tsc to the new config when running tsc -p tsconfig.prod.json

shayneo
  • 3
  • 2
thiloilg
  • 1,733
  • 2
  • 18
  • 23