gristlabs_grist-core/buildtools/tsconfig-base.json
Dmitry S 51ff72c15e (core) Faster builds all around.
Summary:
Building:
- Builds no longer wait for tsc for either client, server, or test targets. All use esbuild which is very fast.
- Build still runs tsc, but only to report errors. This may be turned off with `SKIP_TSC=1` env var.
- Grist-core continues to build using tsc.
- Esbuild requires ES6 module semantics. Typescript's esModuleInterop is turned
  on, so that tsc accepts and enforces correct usage.
- Client-side code is watched and bundled by webpack as before (using esbuild-loader)

Code changes:
- Imports must now follow ES6 semantics: `import * as X from ...` produces a
  module object; to import functions or class instances, use `import X from ...`.
- Everything is now built with isolatedModules flag. Some exports were updated for it.

Packages:
- Upgraded browserify dependency, and related packages (used for the distribution-building step).
- Building the distribution now uses esbuild's minification. babel-minify is no longer used.

Test Plan: Should have no behavior changes, existing tests should pass, and docker image should build too.

Reviewers: georgegevoian

Reviewed By: georgegevoian

Subscribers: alexmojaki

Differential Revision: https://phab.getgrist.com/D3506
2022-07-04 10:42:40 -04:00

38 lines
835 B
JSON

{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"strict": true,
"strictPropertyInitialization": false,
"useUnknownInCatchVariables": false,
"skipLibCheck": true,
"sourceMap": true,
"noImplicitAny": true,
"noUnusedLocals": true,
"moduleResolution": "node",
"allowJs": true,
"baseUrl": "..",
"rootDir": "..",
"outDir": "../_build",
"paths": {
"*": [
"*",
"grist-core/*",
"stubs/*",
"ext/*"
],
},
"composite": true,
"types" : [],
"plugins": [{
"name": "typescript-eslint-language-service"
}],
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"jsx": "react"
}
}