From 8e510f5aac1b9b1dc842b0861e135e9ac4e11b68 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 11 Jun 2020 16:18:40 +0300 Subject: [PATCH] fix imports harder: avoid dynamic imports and bundle all themes, localization and ace-editor files with the app --- .babelrc | 10 +-- locales/en/messages.po | 2 +- locales/fi/messages.po | 2 +- locales/ru/messages.po | 2 +- .../components/ace-editor/ace-editor.tsx | 66 +++++-------------- src/renderer/i18n.ts | 13 +--- src/renderer/theme.store.ts | 2 +- src/renderer/webpack.renderer.js | 1 - 8 files changed, 30 insertions(+), 68 deletions(-) diff --git a/.babelrc b/.babelrc index e3a4c5b5e1..f2fd4b2cbf 100644 --- a/.babelrc +++ b/.babelrc @@ -1,12 +1,14 @@ { "presets": [ - "@babel/preset-env", + [ + "@babel/preset-env", {"modules": "commonjs"} + ], "@babel/preset-react", "@lingui/babel-preset-react" ], "plugins": [ - "@babel/transform-runtime", - "@babel/syntax-dynamic-import", - "macros" + "@babel/plugin-transform-runtime", + "@babel/plugin-syntax-dynamic-import", + "babel-plugin-macros" ] } diff --git a/locales/en/messages.po b/locales/en/messages.po index 75c6c34e69..f2ca7973e8 100644 --- a/locales/en/messages.po +++ b/locales/en/messages.po @@ -1302,7 +1302,6 @@ msgstr "Names" #: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-pods/pods.tsx:75 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 -#: src/renderer/components/app.tsx:37 #: src/renderer/components/dock/edit-resource.tsx:91 #: src/renderer/components/dock/install-chart.tsx:122 #: src/renderer/components/dock/upgrade-chart.tsx:98 @@ -1316,6 +1315,7 @@ msgid "Namespace: {0}" msgstr "Namespace: {0}" #: src/renderer/components/+namespaces/namespaces.tsx:30 +#: src/renderer/components/app.tsx:36 #: src/renderer/components/layout/sidebar.tsx:85 msgid "Namespaces" msgstr "Namespaces" diff --git a/locales/fi/messages.po b/locales/fi/messages.po index 8bb761df4d..4d81ae2a65 100644 --- a/locales/fi/messages.po +++ b/locales/fi/messages.po @@ -1293,7 +1293,6 @@ msgstr "" #: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-pods/pods.tsx:75 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 -#: src/renderer/components/app.tsx:37 #: src/renderer/components/dock/edit-resource.tsx:91 #: src/renderer/components/dock/install-chart.tsx:122 #: src/renderer/components/dock/upgrade-chart.tsx:98 @@ -1307,6 +1306,7 @@ msgid "Namespace: {0}" msgstr "" #: src/renderer/components/+namespaces/namespaces.tsx:30 +#: src/renderer/components/app.tsx:36 #: src/renderer/components/layout/sidebar.tsx:85 msgid "Namespaces" msgstr "" diff --git a/locales/ru/messages.po b/locales/ru/messages.po index 76891d2c6a..6e55ab9f73 100644 --- a/locales/ru/messages.po +++ b/locales/ru/messages.po @@ -1303,7 +1303,6 @@ msgstr "" #: src/renderer/components/+workloads-jobs/jobs.tsx:38 #: src/renderer/components/+workloads-pods/pods.tsx:75 #: src/renderer/components/+workloads-statefulsets/statefulsets.tsx:41 -#: src/renderer/components/app.tsx:37 #: src/renderer/components/dock/edit-resource.tsx:91 #: src/renderer/components/dock/install-chart.tsx:122 #: src/renderer/components/dock/upgrade-chart.tsx:98 @@ -1317,6 +1316,7 @@ msgid "Namespace: {0}" msgstr "Namespace: {0}" #: src/renderer/components/+namespaces/namespaces.tsx:30 +#: src/renderer/components/app.tsx:36 #: src/renderer/components/layout/sidebar.tsx:85 msgid "Namespaces" msgstr "Namespaces" diff --git a/src/renderer/components/ace-editor/ace-editor.tsx b/src/renderer/components/ace-editor/ace-editor.tsx index 4676786b5d..69156705d8 100644 --- a/src/renderer/components/ace-editor/ace-editor.tsx +++ b/src/renderer/components/ace-editor/ace-editor.tsx @@ -3,11 +3,9 @@ import "./ace-editor.scss" import React from "react" -import { observable } from "mobx"; import { observer } from "mobx-react"; -import { Ace } from "ace-builds" +import AceBuild, { Ace } from "ace-builds" import { autobind, cssNames } from "../../utils"; -import { Spinner } from "../spinner"; import { themeStore } from "../../theme.store"; interface Props extends Partial { @@ -40,39 +38,21 @@ export class AceEditor extends React.Component { private editor: Ace.Editor; private elem: HTMLElement; - @observable ready = false; - - async loadEditor() { - return await import( - /* webpackChunkName: "ace" */ - "ace-builds" - ); - } - - loadTheme(theme: string) { - return import( - /* webpackChunkName: "ace/[request]" */ - `ace-builds/src-min-noconflict/theme-${theme}` - ); - } - - loadExtension(ext: string) { - return import( - /* webpackChunkName: "ace/[request]" */ - `ace-builds/src-min-noconflict/ext-${ext}` - ); - } - - loadMode(mode: string) { - return import( - /* webpackChunkName: "ace/[request]" */ - `ace-builds/src-min-noconflict/mode-${mode}` - ) + constructor(props: Props) { + super(props); + require("ace-builds/src-noconflict/mode-yaml") + require("ace-builds/src-noconflict/theme-dreamweaver") + require("ace-builds/src-noconflict/theme-terminal") + require("ace-builds/src-noconflict/ext-searchbox") } get theme() { - return themeStore.activeTheme.type == "light" - ? "dreamweaver" : "terminal"; + switch (themeStore.activeTheme.type) { + case "light": + return "dreamweaver" + case "dark": + return "terminal"; + } } async componentDidMount() { @@ -82,15 +62,8 @@ export class AceEditor extends React.Component { ...options } = this.props; - // load ace-editor, theme and mode - const ace = await this.loadEditor(); - await Promise.all([ - this.loadTheme(this.theme), - this.loadMode(mode) - ]); - // setup editor - this.editor = ace.edit(this.elem, options); + this.editor = AceBuild.edit(this.elem, options); this.setTheme(this.theme); this.setMode(mode); this.setCursorPos(cursorPos); @@ -99,11 +72,9 @@ export class AceEditor extends React.Component { this.editor.on("change", this.onChange); this.editor.selection.on("changeCursor", this.onCursorPosChange); - // load extensions - this.loadExtension("searchbox"); - - if (autoFocus) this.focus(); - this.ready = true; + if (autoFocus) { + this.focus(); + } } componentDidUpdate() { @@ -143,12 +114,10 @@ export class AceEditor extends React.Component { } async setMode(mode: string) { - await this.loadMode(mode); this.editor.session.setMode(`ace/mode/${mode}`); } async setTheme(theme: string) { - await this.loadTheme(theme); this.editor.setTheme(`ace/theme/${theme}`); } @@ -183,7 +152,6 @@ export class AceEditor extends React.Component { return (