mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
introduce applicationInformationToken
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
586c94bb14
commit
22662dd716
@ -8,6 +8,7 @@
|
||||
"exports": {
|
||||
"./main": "./static/build/library/main.js",
|
||||
"./renderer": "./static/build/library/renderer.js",
|
||||
"./common": "./static/build/library/common.js",
|
||||
"./styles": "./static/build/library/renderer.css"
|
||||
},
|
||||
"typesVersions": {
|
||||
@ -17,6 +18,9 @@
|
||||
],
|
||||
"renderer": [
|
||||
"./src/renderer/library.ts"
|
||||
],
|
||||
"common": [
|
||||
"./src/common/library.ts"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@ -3,12 +3,12 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "../../../vars/application-information.injectable";
|
||||
import applicationInformationToken from "../../../vars/application-information-token.injectable";
|
||||
|
||||
const welcomeRouteConfigInjectable = getInjectable({
|
||||
id: "welcome-route-config",
|
||||
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.welcomeRoute,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).config.welcomeRoute,
|
||||
});
|
||||
|
||||
export default welcomeRouteConfigInjectable;
|
||||
|
||||
9
src/common/library.ts
Normal file
9
src/common/library.ts
Normal file
@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import applicationInformationToken from "./vars/application-information-token.injectable";
|
||||
|
||||
export {
|
||||
applicationInformationToken,
|
||||
};
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const applicationCopyrightInjectable = getInjectable({
|
||||
id: "application-copyright",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).copyright,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).copyright,
|
||||
});
|
||||
|
||||
export default applicationCopyrightInjectable;
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const applicationDescriptionInjectable = getInjectable({
|
||||
id: "application-description",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).description,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).description,
|
||||
});
|
||||
|
||||
export default applicationDescriptionInjectable;
|
||||
|
||||
@ -4,14 +4,12 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import packageJson from "../../../package.json";
|
||||
|
||||
export type ApplicationInformation = Pick<typeof packageJson, "version" | "config" | "productName" | "copyright" | "description" | "name"> & {
|
||||
build: Partial<typeof packageJson["build"]> & { publish?: unknown[] };
|
||||
};
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const applicationInformationInjectable = getInjectable({
|
||||
id: "application-information",
|
||||
instantiate: (): ApplicationInformation => {
|
||||
injectionToken: applicationInformationToken,
|
||||
instantiate: () => {
|
||||
const { version, config, productName, build, copyright, description, name } = packageJson;
|
||||
|
||||
return { version, config, productName, build, copyright, description, name };
|
||||
17
src/common/vars/application-information-token.injectable.ts
Normal file
17
src/common/vars/application-information-token.injectable.ts
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getInjectionToken } from "@ogre-tools/injectable";
|
||||
import type packageJson from "../../../package.json";
|
||||
|
||||
export type ApplicationInformation = Pick<typeof packageJson, "version" | "config" | "productName" | "copyright" | "description" | "name"> & {
|
||||
build: { publish?: unknown[] };
|
||||
};
|
||||
|
||||
const applicationInformationToken = getInjectionToken<ApplicationInformation>({
|
||||
id: "application-information-token",
|
||||
});
|
||||
|
||||
export default applicationInformationToken;
|
||||
@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getGlobalOverride } from "../test-utils/get-global-override";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
|
||||
export default getGlobalOverride(applicationInformationInjectable, () => ({
|
||||
name: "some-product-name",
|
||||
productName: "some-product-name",
|
||||
version: "6.0.0",
|
||||
build: {},
|
||||
config: {
|
||||
k8sProxyVersion: "0.2.1",
|
||||
bundledKubectlVersion: "1.23.3",
|
||||
bundledHelmVersion: "3.7.2",
|
||||
sentryDsn: "",
|
||||
contentSecurityPolicy: "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:",
|
||||
welcomeRoute: "/welcome",
|
||||
extensions: [],
|
||||
},
|
||||
copyright: "some-copyright-information",
|
||||
description: "some-descriptive-text",
|
||||
}));
|
||||
@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const applicationInformationForTestingInjectable = getInjectable({
|
||||
id: "application-information-for-testing",
|
||||
injectionToken: applicationInformationToken,
|
||||
instantiate: () => ({
|
||||
name: "some-product-name",
|
||||
productName: "some-product-name",
|
||||
version: "6.0.0",
|
||||
build: {},
|
||||
config: {
|
||||
k8sProxyVersion: "0.2.1",
|
||||
bundledKubectlVersion: "1.23.3",
|
||||
bundledHelmVersion: "3.7.2",
|
||||
sentryDsn: "",
|
||||
contentSecurityPolicy: "script-src 'unsafe-eval' 'self'; frame-src http://*.localhost:*/; img-src * data:",
|
||||
welcomeRoute: "/welcome",
|
||||
extensions: [],
|
||||
},
|
||||
copyright: "some-copyright-information",
|
||||
description: "some-descriptive-text",
|
||||
}),
|
||||
causesSideEffects: false,
|
||||
});
|
||||
|
||||
export default applicationInformationForTestingInjectable;
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const bundledKubectlVersionInjectable = getInjectable({
|
||||
id: "bundled-kubectl-version",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.bundledKubectlVersion,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).config.bundledKubectlVersion,
|
||||
});
|
||||
|
||||
export default bundledKubectlVersionInjectable;
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const contentSecurityPolicyInjectable = getInjectable({
|
||||
id: "content-security-policy",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.contentSecurityPolicy,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).config.contentSecurityPolicy,
|
||||
});
|
||||
|
||||
export default contentSecurityPolicyInjectable;
|
||||
|
||||
@ -4,12 +4,12 @@
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import { SemVer } from "semver";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const extensionApiVersionInjectable = getInjectable({
|
||||
id: "extension-api-version",
|
||||
instantiate: (di) => {
|
||||
const { major, minor, patch } = new SemVer(di.inject(applicationInformationInjectable).version);
|
||||
const { major, minor, patch } = new SemVer(di.inject(applicationInformationToken).version);
|
||||
|
||||
return `${major}.${minor}.${patch}`;
|
||||
},
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const productNameInjectable = getInjectable({
|
||||
id: "product-name",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).productName,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).productName,
|
||||
});
|
||||
|
||||
export default productNameInjectable;
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const sentryDataSourceNameInjectable = getInjectable({
|
||||
id: "sentry-data-source-name",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).config.sentryDsn,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).config.sentryDsn,
|
||||
});
|
||||
|
||||
export default sentryDataSourceNameInjectable;
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "./application-information.injectable";
|
||||
import applicationInformationToken from "./application-information-token.injectable";
|
||||
|
||||
const storeMigrationVersionInjectable = getInjectable({
|
||||
id: "store-migration-version",
|
||||
instantiate: (di) => di.inject(applicationInformationInjectable).version,
|
||||
instantiate: (di) => di.inject(applicationInformationToken).version,
|
||||
});
|
||||
|
||||
export default storeMigrationVersionInjectable;
|
||||
|
||||
@ -27,7 +27,7 @@ import getRelativePathInjectable from "../../common/path/get-relative-path.injec
|
||||
import joinPathsInjectable from "../../common/path/join-paths.injectable";
|
||||
import removePathInjectable from "../../common/fs/remove-path.injectable";
|
||||
import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable";
|
||||
import applicationInformationInjectable from "../../common/vars/application-information.injectable";
|
||||
import applicationInformationToken from "../../common/vars/application-information-token.injectable";
|
||||
import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable";
|
||||
|
||||
const extensionDiscoveryInjectable = getInjectable({
|
||||
@ -58,7 +58,7 @@ const extensionDiscoveryInjectable = getInjectable({
|
||||
getRelativePath: di.inject(getRelativePathInjectable),
|
||||
joinPaths: di.inject(joinPathsInjectable),
|
||||
homeDirectoryPath: di.inject(homeDirectoryPathInjectable),
|
||||
applicationInformation: di.inject(applicationInformationInjectable),
|
||||
applicationInformation: di.inject(applicationInformationToken),
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ import type { GetDirnameOfPath } from "../../common/path/get-dirname.injectable"
|
||||
import type { GetRelativePath } from "../../common/path/get-relative-path.injectable";
|
||||
import type { RemovePath } from "../../common/fs/remove-path.injectable";
|
||||
import type TypedEventEmitter from "typed-emitter";
|
||||
import type { ApplicationInformation } from "../../common/vars/application-information.injectable";
|
||||
import type { ApplicationInformation } from "../../common/vars/application-information-injectable";
|
||||
|
||||
interface Dependencies {
|
||||
readonly extensionLoader: ExtensionLoader;
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import applicationInformationInjectable from "../../../../../common/vars/application-information.injectable";
|
||||
import applicationInformationToken from "../../../../../common/vars/application-information-token.injectable";
|
||||
|
||||
const publishIsConfiguredInjectable = getInjectable({
|
||||
id: "publish-is-configured",
|
||||
instantiate: (di) => Boolean(di.inject(applicationInformationInjectable).build.publish?.length),
|
||||
instantiate: (di) => Boolean(di.inject(applicationInformationToken).build.publish?.length),
|
||||
});
|
||||
|
||||
export default publishIsConfiguredInjectable;
|
||||
|
||||
@ -80,6 +80,7 @@ import kubectlDownloadingNormalizedArchInjectable from "./kubectl/normalized-arc
|
||||
import initializeClusterManagerInjectable from "./cluster/initialize-manager.injectable";
|
||||
import addKubeconfigSyncAsEntitySourceInjectable from "./start-main-application/runnables/kube-config-sync/add-source.injectable";
|
||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||
import applicationInformationForTestingInjectable from "../common/vars/application-information.injectable-for-testing";
|
||||
|
||||
export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {}) {
|
||||
const {
|
||||
@ -102,6 +103,7 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
||||
|
||||
runInAction(() => {
|
||||
registerMobX(di);
|
||||
di.register(applicationInformationForTestingInjectable);
|
||||
|
||||
chunk(100)(injectables).forEach(chunkInjectables => {
|
||||
di.register(...chunkInjectables);
|
||||
|
||||
@ -6,19 +6,17 @@ import { getInjectable } from "@ogre-tools/injectable";
|
||||
import httpProxy from "http-proxy";
|
||||
import { webpackDevServerPort } from "../../../../webpack/vars";
|
||||
import { publicPath } from "../../../common/vars";
|
||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
||||
import type { LensApiRequest, RouteResponse } from "../../router/route";
|
||||
|
||||
const devStaticFileRouteHandlerInjectable = getInjectable({
|
||||
id: "dev-static-file-route-handler",
|
||||
instantiate: (di) => {
|
||||
instantiate: () => {
|
||||
const proxy = httpProxy.createProxy();
|
||||
const appName = di.inject(appNameInjectable);
|
||||
const proxyTarget = `http://127.0.0.1:${webpackDevServerPort}`;
|
||||
|
||||
return async ({ raw: { req, res }}: LensApiRequest<"/{path*}">): Promise<RouteResponse<Buffer>> => {
|
||||
if (req.url === "/" || !req.url) {
|
||||
req.url = `${publicPath}/${appName}.html`;
|
||||
req.url = `${publicPath}/index.html`;
|
||||
} else if (!req.url.startsWith("/build/")) {
|
||||
return { statusCode: 404 };
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import { getInjectable } from "@ogre-tools/injectable";
|
||||
import readFileBufferInjectable from "../../../common/fs/read-file-buffer.injectable";
|
||||
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
|
||||
import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable";
|
||||
import appNameInjectable from "../../../common/vars/app-name.injectable";
|
||||
import type { LensApiRequest } from "../../router/route";
|
||||
import path from "path";
|
||||
import type { SupportedFileExtension } from "../../router/router-content-types";
|
||||
@ -20,7 +19,6 @@ const prodStaticFileRouteHandlerInjectable = getInjectable({
|
||||
const readFileBuffer = di.inject(readFileBufferInjectable);
|
||||
const joinPaths = di.inject(joinPathsInjectable);
|
||||
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
|
||||
const appName = di.inject(appNameInjectable);
|
||||
const logger = di.inject(loggerInjectable);
|
||||
|
||||
return async ({ params }: LensApiRequest<"/{path*}">) => {
|
||||
@ -49,7 +47,7 @@ const prodStaticFileRouteHandlerInjectable = getInjectable({
|
||||
return { statusCode: 404 };
|
||||
}
|
||||
|
||||
filePath = `${publicPath}/${appName}.html`;
|
||||
filePath = `${publicPath}/index.html`;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path
|
||||
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.injectable";
|
||||
import isLinuxInjectable from "../../../../common/vars/is-linux.injectable";
|
||||
import fsInjectable from "../../../../common/fs/fs.injectable";
|
||||
import applicationInformationInjectable from "../../../../common/vars/application-information.injectable";
|
||||
import applicationInformationToken from "../../../../common/vars/application-information-token.injectable";
|
||||
|
||||
|
||||
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
|
||||
@ -54,7 +54,7 @@ const createElectronWindowInjectable = getInjectable({
|
||||
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
|
||||
const lensResourcesDir = di.inject(lensResourcesDirInjectable);
|
||||
const isLinux = di.inject(isLinuxInjectable);
|
||||
const applicationInformation = di.inject(applicationInformationInjectable);
|
||||
const applicationInformation = di.inject(applicationInformationToken);
|
||||
|
||||
return (configuration) => {
|
||||
const applicationWindowState = di.inject(
|
||||
|
||||
@ -51,6 +51,7 @@ import storageSaveDelayInjectable from "./utils/create-storage/storage-save-dela
|
||||
import environmentVariablesInjectable from "../common/utils/environment-variables.injectable";
|
||||
import type { GlobalOverride } from "../common/test-utils/get-global-override";
|
||||
import type { PartialDeep } from "type-fest";
|
||||
import applicationInformationForTestingInjectable from "../common/vars/application-information.injectable-for-testing";
|
||||
|
||||
export const getDiForUnitTesting = (
|
||||
opts: { doGeneralOverrides?: boolean } = {},
|
||||
@ -74,6 +75,8 @@ export const getDiForUnitTesting = (
|
||||
runInAction(() => {
|
||||
registerMobX(di);
|
||||
|
||||
di.register(applicationInformationForTestingInjectable);
|
||||
|
||||
chunk(100)(injectables).forEach((chunkInjectables) => {
|
||||
di.register(...chunkInjectables);
|
||||
});
|
||||
|
||||
@ -17,7 +17,9 @@ const config = [
|
||||
main: path.resolve(__dirname, "..", "src", "main", "library.ts"),
|
||||
},
|
||||
output: {
|
||||
libraryTarget: "commonjs",
|
||||
library: {
|
||||
type: "commonjs2",
|
||||
},
|
||||
path: path.resolve(buildDir, "library"),
|
||||
},
|
||||
optimization: {
|
||||
@ -32,11 +34,33 @@ const config = [
|
||||
},
|
||||
{
|
||||
...renderer,
|
||||
entry: {
|
||||
common: path.resolve(__dirname, "..", "src", "common", "library.ts"),
|
||||
},
|
||||
output: {
|
||||
library: {
|
||||
type: "commonjs2",
|
||||
},
|
||||
path: path.resolve(buildDir, "library"),
|
||||
},
|
||||
optimization: {
|
||||
minimize: false,
|
||||
},
|
||||
externals: [
|
||||
nodeExternals(),
|
||||
],
|
||||
plugins: [],
|
||||
},
|
||||
{
|
||||
...renderer,
|
||||
name: "lens-app-common",
|
||||
entry: {
|
||||
renderer: path.resolve(__dirname, "..", "src", "renderer", "library.ts"),
|
||||
},
|
||||
output: {
|
||||
libraryTarget: "commonjs",
|
||||
library: {
|
||||
type: "commonjs2",
|
||||
},
|
||||
path: path.resolve(buildDir, "library"),
|
||||
},
|
||||
optimization: {
|
||||
|
||||
@ -5,16 +5,11 @@
|
||||
|
||||
import path from "path";
|
||||
import type webpack from "webpack";
|
||||
import type { WebpackPluginInstance } from "webpack";
|
||||
import { DefinePlugin } from "webpack";
|
||||
import nodeExternals from "webpack-node-externals";
|
||||
import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
|
||||
import CircularDependencyPlugin from "circular-dependency-plugin";
|
||||
import MonacoWebpackPlugin from "monaco-editor-webpack-plugin";
|
||||
import getTypeScriptLoader from "./get-typescript-loader";
|
||||
import rendererConfig, { iconsAndImagesWebpackRules } from "./renderer";
|
||||
import { appName, assetsFolderName, buildDir, htmlTemplate, isDevelopment, mainDir, publicPath } from "./vars";
|
||||
import { platform } from "process";
|
||||
import { assetsFolderName, buildDir, htmlTemplate, isDevelopment, mainDir, publicPath } from "./vars";
|
||||
import HtmlWebpackPlugin from "html-webpack-plugin";
|
||||
import MiniCssExtractPlugin from "mini-css-extract-plugin";
|
||||
|
||||
@ -29,7 +24,7 @@ const renderer: webpack.Configuration = ({
|
||||
globalAPI: isDevelopment,
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
filename: `${appName}.html`,
|
||||
filename: "index.html",
|
||||
template: htmlTemplate,
|
||||
inject: true,
|
||||
hash: true,
|
||||
@ -73,18 +68,7 @@ const main: webpack.Configuration = ({
|
||||
...iconsAndImagesWebpackRules(),
|
||||
],
|
||||
},
|
||||
plugins: [
|
||||
new DefinePlugin({
|
||||
CONTEXT_MATCHER_FOR_NON_FEATURES: `/\\.injectable(\\.${platform})?\\.tsx?$/`,
|
||||
CONTEXT_MATCHER_FOR_FEATURES: `/\\/(main|common)\\/.+\\.injectable(\\.${platform})?\\.tsx?$/`,
|
||||
}),
|
||||
new ForkTsCheckerPlugin(),
|
||||
new CircularDependencyPlugin({
|
||||
cwd: __dirname,
|
||||
exclude: /node_modules/,
|
||||
failOnError: true,
|
||||
}) as unknown as WebpackPluginInstance,
|
||||
],
|
||||
plugins: [],
|
||||
});
|
||||
|
||||
export {
|
||||
|
||||
@ -103,7 +103,7 @@ export function webpackLensRenderer({ showVars = true } = {}): webpack.Configura
|
||||
}),
|
||||
|
||||
new HtmlWebpackPlugin({
|
||||
filename: `${appName}.html`,
|
||||
filename: "index.html",
|
||||
template: htmlTemplate,
|
||||
inject: true,
|
||||
hash: true,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user