mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(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
This commit is contained in:
@@ -12,7 +12,7 @@ import {buildUrlId, parseUrlId} from 'app/common/gristUrls';
|
||||
import {StringUnion} from 'app/common/StringUnion';
|
||||
import {DocSnapshot} from 'app/common/UserAPI';
|
||||
import {Disposable, dom, IDomComponent, MultiHolder, Observable, styled} from 'grainjs';
|
||||
import * as moment from 'moment';
|
||||
import moment from 'moment';
|
||||
|
||||
const DocHistorySubTab = StringUnion("activity", "snapshots");
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*/
|
||||
|
||||
import * as browserGlobals from 'app/client/lib/browserGlobals';
|
||||
import * as dom from 'app/client/lib/dom';
|
||||
import dom from 'app/client/lib/dom';
|
||||
const G = browserGlobals.get('document', 'window');
|
||||
|
||||
export interface FileDialogOptions {
|
||||
|
||||
@@ -3,7 +3,7 @@ import {duplicatePage} from 'app/client/components/duplicatePage';
|
||||
import {GristDoc} from 'app/client/components/GristDoc';
|
||||
import {PageRec} from 'app/client/models/DocModel';
|
||||
import {urlState} from 'app/client/models/gristUrlState';
|
||||
import * as MetaTableModel from 'app/client/models/MetaTableModel';
|
||||
import MetaTableModel from 'app/client/models/MetaTableModel';
|
||||
import {find as findInTree, fromTableData, TreeItemRecord, TreeRecord,
|
||||
TreeTableData} from 'app/client/models/TreeModel';
|
||||
import {TreeViewComponent} from 'app/client/ui/TreeViewComponent';
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
|
||||
import * as commands from 'app/client/components/commands';
|
||||
import {GristDoc, IExtraTool, TabContent} from 'app/client/components/GristDoc';
|
||||
import * as RefSelect from 'app/client/components/RefSelect';
|
||||
import * as ViewConfigTab from 'app/client/components/ViewConfigTab';
|
||||
import RefSelect from 'app/client/components/RefSelect';
|
||||
import ViewConfigTab from 'app/client/components/ViewConfigTab';
|
||||
import {domAsync} from 'app/client/lib/domAsync';
|
||||
import * as imports from 'app/client/lib/imports';
|
||||
import {createSessionObs} from 'app/client/lib/sessionObs';
|
||||
|
||||
@@ -2,7 +2,7 @@ import { ColumnRec, DocModel, TableRec, ViewSectionRec } from 'app/client/models
|
||||
import { IPageWidget } from 'app/client/ui/PageWidgetPicker';
|
||||
import { getReferencedTableId } from 'app/common/gristTypes';
|
||||
import { IOptionFull } from 'grainjs';
|
||||
import * as assert from 'assert';
|
||||
import assert from 'assert';
|
||||
import * as gutil from "app/common/gutil";
|
||||
|
||||
// some unicode characters
|
||||
|
||||
Reference in New Issue
Block a user