diff --git a/packages/core/webpack/extensions.ts b/packages/core/webpack/extensions.ts deleted file mode 100644 index 961c1d3bf2..0000000000 --- a/packages/core/webpack/extensions.ts +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - - -import path from "path"; -import type webpack from "webpack"; -import { cssModulesWebpackRule, fontsLoaderWebpackRules, iconsAndImagesWebpackRules } from "./renderer"; -import { extensionEntry, extensionOutDir, isDevelopment } from "./vars"; - -export default function generateExtensionTypes(): webpack.Configuration { - return { - // Compile for Electron for renderer process - // see - target: "electron-renderer", - entry: extensionEntry, - // this is the default mode, so we should make it explicit to silence the warning - mode: isDevelopment ? "development" : "production", - output: { - filename: "extension-api.js", - // need to be an absolute path - path: path.resolve(extensionOutDir, "src", "extensions"), - // can be use in commonjs environments - // e.g. require('@k8slens/extensions') - libraryTarget: "commonjs", - }, - cache: isDevelopment, - optimization: { - minimize: false, // speed up types compilation - }, - ignoreWarnings: [ - /Critical dependency: the request of a dependency is an expression/, // see who is using request: "npm ls request" - /require.extensions is not supported by webpack./, // handlebars - ], - stats: "errors-warnings", - module: { - rules: [ - { - test: /\.node$/, - loader: "ignore-loader", - }, - { - test: /\.tsx?$/, - loader: "ts-loader", - options: { - // !! ts-loader will use tsconfig.json at folder root - // !! changes in tsconfig.json may have side effects - // !! on '@k8slens/extensions' module - compilerOptions: { - declaration: true, // output .d.ts - sourceMap: false, // to override sourceMap: true in tsconfig.json - outDir: extensionOutDir, // where the .d.ts should be located - }, - }, - }, - cssModulesWebpackRule({ styleLoader: "style-loader" }), - ...fontsLoaderWebpackRules(), - ...iconsAndImagesWebpackRules(), - ], - }, - resolve: { - extensions: [".ts", ".tsx", ".js"], - }, - plugins: [ - // In ts-loader's README they said to output a built .d.ts file, - // you can set "declaration": true in tsconfig.extensions.json, - // and use the DeclarationBundlerPlugin in your webpack config... but - // !! the DeclarationBundlerPlugin doesn't work anymore, author archived it. - // https://www.npmjs.com/package/declaration-bundler-webpack-plugin - // new DeclarationBundlerPlugin({ - // moduleName: '@k8slens/extensions', - // out: 'extension-api.d.ts', - // }) - ], - }; -} diff --git a/packages/core/webpack/library-bundle.ts b/packages/core/webpack/library-bundle.ts index 51a37877b0..e7d5913f5e 100644 --- a/packages/core/webpack/library-bundle.ts +++ b/packages/core/webpack/library-bundle.ts @@ -5,13 +5,10 @@ import MiniCssExtractPlugin from "mini-css-extract-plugin"; import { platform } from "os"; import path from "path"; -import type { WebpackPluginInstance } from "webpack"; import { DefinePlugin, optimize } from "webpack"; import main from "./main"; -import renderer from "./renderer"; +import renderer, { cssModulesWebpackRule, fontsLoaderWebpackRules, iconsAndImagesWebpackRules } from "./renderer"; import { buildDir } from "./vars"; -import CircularDependencyPlugin from "circular-dependency-plugin"; -import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin"; const rendererConfig = renderer({ showVars: false }); @@ -30,16 +27,38 @@ const config = [ optimization: { minimize: false, }, + module: { + parser: { + javascript: { + commonjsMagicComments: true, + }, + }, + rules: [ + { + test: /\.node$/, + use: "node-loader", + }, + { + test: /\.ts$/, + exclude: /node_modules/, + use: { + loader: "ts-loader", + options: { + compilerOptions: { + declaration: true, + sourceMap: false, + }, + } + }, + }, + ...iconsAndImagesWebpackRules(), + ], + }, plugins: [ new DefinePlugin({ CONTEXT_MATCHER_FOR_NON_FEATURES: `/\\.injectable(\\.${platform})?\\.tsx?$/`, CONTEXT_MATCHER_FOR_FEATURES: `/\\/(main|common)\\/.+\\.injectable(\\.${platform})?\\.tsx?$/`, }), - new CircularDependencyPlugin({ - cwd: __dirname, - exclude: /node_modules/, - failOnError: true, - }) as unknown as WebpackPluginInstance, ], }, { @@ -57,14 +76,7 @@ const config = [ optimization: { minimize: false, }, - plugins: [ - new ForkTsCheckerPlugin(), - new CircularDependencyPlugin({ - cwd: __dirname, - exclude: /node_modules/, - failOnError: true, - }) as unknown as WebpackPluginInstance, - ], + plugins: [], }, { ...rendererConfig, @@ -96,12 +108,6 @@ const config = [ new optimize.LimitChunkCountPlugin({ maxChunks: 1, }), - new ForkTsCheckerPlugin(), - new CircularDependencyPlugin({ - cwd: __dirname, - exclude: /node_modules/, - failOnError: true, - }) as unknown as WebpackPluginInstance, ], }, ]; diff --git a/packages/core/webpack/tsconfig.json b/packages/core/webpack/tsconfig.json index 3c43903cfd..158d94ee1a 100644 --- a/packages/core/webpack/tsconfig.json +++ b/packages/core/webpack/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "../tsconfig.json" + "extends": "../tsconfig.json", + "compilerOptions": { + "rootDir": ".." + } }