diff --git a/package.json b/package.json index 7557cdb1b6..60ab789099 100644 --- a/package.json +++ b/package.json @@ -295,6 +295,7 @@ "electron": "^9.4.0", "electron-builder": "^22.7.0", "electron-notarize": "^0.3.0", + "electron-releases": "^3.570.0", "electron-reload": "^1.5.0", "eslint": "^7.7.0", "eslint-plugin-react": "^7.21.5", diff --git a/webpack.renderer.ts b/webpack.renderer.ts index 267676ee01..30837b110c 100755 --- a/webpack.renderer.ts +++ b/webpack.renderer.ts @@ -7,6 +7,7 @@ import TerserPlugin from "terser-webpack-plugin"; import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin"; import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin"; import * as vars from "./src/common/vars"; +import { devDependencies } from "./package.json"; export default [ webpackLensRenderer @@ -100,10 +101,38 @@ export function webpackLensRenderer({ showVars = true } = {}): webpack.Configura { test: /\.tsx?$/, exclude: /node_modules/, - use: { - loader: "ts-loader", - options: { - transpileOnly: true, // ForkTsCheckerPlugin does type-checking + use: [ + { + loader: "babel-loader", + options: { + presets: [ + ["@babel/preset-env", { + // ling-ui + modules: "commonjs", + // only transpile if necessary + // https://github.com/electron-userland/electron-webpack/blob/ebbf9150b1549fbe7b5e97e9a972e547108eba50/packages/electron-webpack/src/configurators/js.ts#L50 + targets: { + electron: `${devDependencies.electron.replace("^", "")}`, + } + }], + ], + plugins: [ + isDevelopment && require.resolve("react-refresh/babel"), + ].filter(Boolean), + } + }, + { + loader: "ts-loader", // ForkTsCheckerPlugin does type-checking + options: { + transpileOnly: true, + compilerOptions: { + // localization support + // https://lingui.js.org/guides/typescript.html + jsx: "preserve", + target: "es2016", + module: "esnext", + }, + } } } }, diff --git a/yarn.lock b/yarn.lock index bd813b0aba..a7e01106d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4457,6 +4457,11 @@ electron-publish@22.7.0: lazy-val "^1.0.4" mime "^2.4.5" +electron-releases@^3.570.0: + version "3.570.0" + resolved "https://registry.yarnpkg.com/electron-releases/-/electron-releases-3.570.0.tgz#ab0dfa63fa078b530854d8cb3ce633daa3560136" + integrity sha512-kug6Dpw2Dp0Pn2kVtpdsMQV3eFEnErlsvMQZtP8FeYRYfxmtV0QCjZj0PwWDf/tGAIF376RJ4vfqLDgLNWVb5g== + electron-reload@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/electron-reload/-/electron-reload-1.5.0.tgz#179ab1f6941fcf0ed261c37b16dc465e201348f5"