Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle a project with multiple tsconfig.json files?

I'm working on a project structured like this:

\
|- built
|- src
|- perf
   |- tsconfig.json
|- typings
|- tsconfig.json

My tsconfig.json on the root

"target": "es6",
"outDir": "built",
"rootDir": "./src",

I need a different configuration on the perf folder, like a different target.

"target": "es5",

However, my typings folder is on the root of my project, not inside perf folder. So doing a tsc ./perf results in a lot of errors.

Is there a way to tell TypeScript where to look for typings? I'm using

npm install -g typescript@next
// [email protected]

Or a way to have different configurations depending on the folder?

like image 937
BrunoLM Avatar asked Nov 09 '15 21:11

BrunoLM


2 Answers

Is there a way to tell TypeScript where to look for typings

Quickest solution

Move typings into pref.

Long term solution

Use filesGlob once it is supported in tsc : https://github.com/Microsoft/TypeScript/issues/1927

like image 39
basarat Avatar answered Sep 22 '22 12:09

basarat


you can do this by extending your base tsconfig.json file:

tsconfig extension

just do not exclude directories in the base tsconfig.json and typescript should be able to resolve your typings for you (know this is true using node_modules/@types, or the typings module)

For example:

configs/base.json:

{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true
  }
}

tsconfig.json:

{
  "extends": "./configs/base",
  "files": [
    "main.ts",
    "supplemental.ts"
  ]
}

tsconfig.nostrictnull.json:

{
   "extends": "./tsconfig",
   "compilerOptions": {
     "strictNullChecks": false
   }
}
like image 51
weagle08 Avatar answered Sep 19 '22 12:09

weagle08