(core) Speed up and upgrade build.

Summary:
- Upgrades to build-related packages:
  - Upgrade typescript, related libraries and typings.
  - Upgrade webpack, eslint; add tsc-watch, node-dev, eslint_d.

- Build organization changes:
  - Build webpack from original typescript, transpiling only; with errors still
    reported by a background tsc watching process.

- Typescript-related changes:
  - Reduce imports of AWS dependencies (very noticeable speedup)
  - Avoid auto-loading global @types
  - Client code is now built with isolatedModules flag (for safe transpilation)
  - Use allowJs to avoid copying JS files manually.

- Linting changes
  - Enhance Arcanist ESLintLinter to run before/after commands, and set up to use eslint_d
  - Update eslint config, and include .eslintignore to avoid linting generated files.
  - Include a bunch of eslint-prompted and eslint-generated fixes
  - Add no-unused-expression rule to eslint, and fix a few warnings about it

- Other items:
  - Refactor cssInput to avoid circular dependency
  - Remove a bit of unused code, libraries, dependencies

Test Plan: No behavior changes, all existing tests pass. There are 30 tests fewer reported because `test_gpath.py` was removed (it's been unused for years)

Reviewers: paulfitz

Reviewed By: paulfitz

Subscribers: paulfitz

Differential Revision: https://phab.getgrist.com/D3498
This commit is contained in:
Dmitry S
2022-06-27 16:09:41 -04:00
parent 64ff9ccd0a
commit dd2eadc86e
45 changed files with 948 additions and 2442 deletions

View File

@@ -45,9 +45,8 @@
"@types/mime-types": "2.1.0",
"@types/mocha": "5.2.5",
"@types/moment-timezone": "0.5.9",
"@types/node": "^10",
"@types/node": "^14",
"@types/node-fetch": "2.1.2",
"@types/numeral": "0.0.25",
"@types/pidusage": "2.0.1",
"@types/plotly.js": "1.44.15",
"@types/qrcode": "1.4.2",
@@ -64,6 +63,7 @@
"catw": "1.0.1",
"chai": "4.2.0",
"chai-as-promised": "7.1.1",
"esbuild-loader": "2.19.0",
"mocha": "5.2.0",
"mocha-webdriver": "0.2.9",
"moment-locales-webpack-plugin": "^1.2.0",
@@ -72,11 +72,10 @@
"selenium-webdriver": "3.6.0",
"sinon": "7.1.1",
"source-map-loader": "^0.2.4",
"stats-webpack-plugin": "^0.7.0",
"tmp-promise": "1.0.5",
"typescript": "3.9.3",
"webpack": "4.41.0",
"webpack-cli": "3.3.2",
"typescript": "4.7.4",
"webpack": "5.73.0",
"webpack-cli": "4.10.0",
"why-is-node-running": "2.0.3"
},
"dependencies": {
@@ -127,7 +126,6 @@
"mousetrap": "1.6.2",
"multiparty": "4.2.2",
"node-fetch": "2.2.0",
"numeral": "2.0.6",
"pg": "8.6.0",
"plotly.js-basic-dist": "1.51.1",
"popper-max-size-modifier": "0.2.0",