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:
@@ -4,7 +4,7 @@ import {assert} from 'chai';
|
||||
import * as http from 'http';
|
||||
import {AddressInfo, Server, Socket} from 'net';
|
||||
import * as sinon from 'sinon';
|
||||
import * as WebSocket from 'ws';
|
||||
import WebSocket from 'ws';
|
||||
import * as path from 'path';
|
||||
import * as tmp from 'tmp';
|
||||
|
||||
@@ -80,6 +80,9 @@ describe('Comm', function() {
|
||||
beforeEach(function() {
|
||||
// Silence console messages from client-side Comm.ts.
|
||||
if (!process.env.VERBOSE) {
|
||||
// TODO: This no longer works, now that 'log' is a more proper "module" object rather than
|
||||
// an arbitrary JS object. Also used in a couple other tests where logs are no longer
|
||||
// silenced.
|
||||
sandbox.stub(log, 'debug');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import {getAppRoot} from 'app/server/lib/places';
|
||||
import {fromCallback, listenPromise} from 'app/server/lib/serverUtils';
|
||||
import * as express from 'express';
|
||||
import express from 'express';
|
||||
import * as http from 'http';
|
||||
import {AddressInfo, Socket} from 'net';
|
||||
import * as path from 'path';
|
||||
|
||||
@@ -2,7 +2,7 @@ import { DocAction } from 'app/common/DocActions';
|
||||
import { FlexServer } from 'app/server/lib/FlexServer';
|
||||
import axios from 'axios';
|
||||
import pick = require('lodash/pick');
|
||||
import * as WebSocket from 'ws';
|
||||
import WebSocket from 'ws';
|
||||
|
||||
interface GristRequest {
|
||||
reqId: number;
|
||||
|
||||
@@ -10,7 +10,7 @@ import {configForUser, getGristConfig} from 'test/gen-server/testUtils';
|
||||
import {createDocTools} from 'test/server/docTools';
|
||||
import {openClient} from 'test/server/gristClient';
|
||||
import * as testUtils from 'test/server/testUtils';
|
||||
import * as uuidv4 from 'uuid/v4';
|
||||
import uuidv4 from 'uuid/v4';
|
||||
|
||||
let serverUrl: string;
|
||||
let server: FlexServer;
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
docPeriodicApiUsageKey,
|
||||
getDocApiUsageKeysToIncr
|
||||
} from 'app/server/lib/DocApi';
|
||||
import * as log from 'app/server/lib/log';
|
||||
import log from 'app/server/lib/log';
|
||||
import {exitPromise} from 'app/server/lib/serverUtils';
|
||||
import {connectTestingHooks, TestingHooksClient} from 'app/server/lib/TestingHooks';
|
||||
import axios, {AxiosResponse} from 'axios';
|
||||
@@ -19,10 +19,10 @@ import {delay} from 'bluebird';
|
||||
import * as bodyParser from 'body-parser';
|
||||
import {assert} from 'chai';
|
||||
import {ChildProcess, execFileSync, spawn} from 'child_process';
|
||||
import * as FormData from 'form-data';
|
||||
import FormData from 'form-data';
|
||||
import * as fse from 'fs-extra';
|
||||
import * as _ from 'lodash';
|
||||
import * as LRUCache from 'lru-cache';
|
||||
import LRUCache from 'lru-cache';
|
||||
import * as moment from 'moment';
|
||||
import fetch from 'node-fetch';
|
||||
import {tmpdir} from 'os';
|
||||
|
||||
@@ -11,9 +11,7 @@
|
||||
/* global before, after */
|
||||
|
||||
import * as _ from 'underscore';
|
||||
import * as chai from 'chai';
|
||||
import { assert } from 'chai';
|
||||
import * as chaiAsPromised from 'chai-as-promised';
|
||||
import * as path from 'path';
|
||||
import * as fse from 'fs-extra';
|
||||
import clone = require('lodash/clone');
|
||||
@@ -22,11 +20,9 @@ import * as winston from 'winston';
|
||||
import { serialize } from 'winston/lib/winston/common';
|
||||
|
||||
import * as docUtils from 'app/server/lib/docUtils';
|
||||
import * as log from 'app/server/lib/log';
|
||||
import log from 'app/server/lib/log';
|
||||
import { getAppRoot } from 'app/server/lib/places';
|
||||
|
||||
chai.use(chaiAsPromised);
|
||||
|
||||
/**
|
||||
* Creates a temporary file with the given contents.
|
||||
* @param {String} content. Data to store in the file.
|
||||
|
||||
Reference in New Issue
Block a user