1
0
mirror of https://github.com/lensapp/lens.git synced 2024-12-01 10:37:09 +03:00

chore: Run lint on webpack/renderer

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-05-05 12:12:39 -04:00
parent 91354eae01
commit 700a9024a8

View File

@ -1,23 +1,30 @@
/** /**
* Copyright (c) OpenLens Authors. All rights reserved. * Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
import path from "path"; import path from "path";
import type webpack from "webpack"; import type webpack from "webpack";
import HtmlWebpackPlugin from "html-webpack-plugin"; import HtmlWebpackPlugin from "html-webpack-plugin";
import MiniCssExtractPlugin from "mini-css-extract-plugin"; import MiniCssExtractPlugin from "mini-css-extract-plugin";
import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin"; import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
import MonacoWebpackPlugin from "monaco-editor-webpack-plugin"; import MonacoWebpackPlugin from "monaco-editor-webpack-plugin";
import CircularDependencyPlugin from "circular-dependency-plugin"; import CircularDependencyPlugin from "circular-dependency-plugin";
import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin"; import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin";
import CopyPlugin from "copy-webpack-plugin"; import CopyPlugin from "copy-webpack-plugin";
import type { WebpackPluginInstance } from "webpack"; import type { WebpackPluginInstance } from "webpack";
import { DefinePlugin } from "webpack"; import { DefinePlugin } from "webpack";
import { assetsFolderName, isDevelopment, rendererDir, buildDir, htmlTemplate, publicPath } from "./vars"; import {
import corePackageJson from "@k8slens/core/package.json"; assetsFolderName,
isDevelopment,
rendererDir,
buildDir,
htmlTemplate,
publicPath,
} from "./vars";
import corePackageJson from "@k8slens/core/package.json";
const renderer: webpack.Configuration = { const renderer: webpack.Configuration = {
target: "electron-renderer", target: "electron-renderer",
name: "lens-app-renderer", name: "lens-app-renderer",
mode: isDevelopment ? "development" : "production", mode: isDevelopment ? "development" : "production",
@ -45,15 +52,9 @@
/\[ReactRefreshPlugin] .*?HMR.*? is not enabled/, // enabled in webpack.dev-server /\[ReactRefreshPlugin] .*?HMR.*? is not enabled/, // enabled in webpack.dev-server
], ],
resolve: { resolve: {
extensions: [ extensions: [".js", ".jsx", ".json", ".ts", ".tsx"],
".js", ".jsx", ".json",
".ts", ".tsx",
],
}, },
externals: [ externals: ["npm", "win-ca"],
"npm",
"win-ca"
],
optimization: { optimization: {
minimize: false, minimize: false,
}, },
@ -126,78 +127,74 @@
], ],
}), }),
...( ...(isDevelopment ? [new ReactRefreshWebpackPlugin()] : []),
isDevelopment
? [new ReactRefreshWebpackPlugin()]
: []
),
], ],
}; };
/** /**
* Import icons and image files. * Import icons and image files.
* Read more about asset types: https://webpack.js.org/guides/asset-modules/ * Read more about asset types: https://webpack.js.org/guides/asset-modules/
*/ */
export function iconsAndImagesWebpackRules(): webpack.RuleSetRule[] { export function iconsAndImagesWebpackRules(): webpack.RuleSetRule[] {
return [ return [
{ {
test: /\.svg$/, test: /\.svg$/,
type: "asset/source", // exports the source code of the asset, so we get XML type: "asset/source", // exports the source code of the asset, so we get XML
}, },
{ {
test: /\.(jpg|png|ico)$/, test: /\.(jpg|png|ico)$/,
type: "asset/resource", type: "asset/resource",
generator: { generator: {
filename: "images/[name][ext]", filename: "images/[name][ext]",
}, },
}, },
]; ];
} }
/** /**
* Import custom fonts as URL. * Import custom fonts as URL.
*/ */
export function fontsLoaderWebpackRules(): webpack.RuleSetRule[] { export function fontsLoaderWebpackRules(): webpack.RuleSetRule[] {
return [ return [
{ {
test: /\.(ttf|eot|woff2?)$/, test: /\.(ttf|eot|woff2?)$/,
type: "asset/resource", type: "asset/resource",
generator: { generator: {
filename: "fonts/[name][ext]", filename: "fonts/[name][ext]",
}, },
}, },
]; ];
} }
export interface CssModulesWebpackRuleOptions { export interface CssModulesWebpackRuleOptions {
styleLoader?: string; styleLoader?: string;
} }
/** /**
* Import CSS or SASS styles with modules support (*.module.scss) * Import CSS or SASS styles with modules support (*.module.scss)
*/ */
export function cssModulesWebpackRule({ styleLoader }: CssModulesWebpackRuleOptions = {}): webpack.RuleSetRule { export function cssModulesWebpackRule({
styleLoader ??= isDevelopment styleLoader,
? "style-loader" }: CssModulesWebpackRuleOptions = {}): webpack.RuleSetRule {
: MiniCssExtractPlugin.loader; styleLoader ??= isDevelopment ? "style-loader" : MiniCssExtractPlugin.loader;
return { return {
test: /\.s?css$/, test: /\.s?css$/,
use: [ use: [
styleLoader, styleLoader,
{ {
loader: "css-loader", loader: "css-loader",
options: { options: {
sourceMap: isDevelopment, sourceMap: isDevelopment,
modules: { modules: {
auto: /\.module\./i, // https://github.com/webpack-contrib/css-loader#auto auto: /\.module\./i, // https://github.com/webpack-contrib/css-loader#auto
mode: "local", // :local(.selector) by default mode: "local", // :local(.selector) by default
localIdentName: "[name]__[local]--[hash:base64:5]", localIdentName: "[name]__[local]--[hash:base64:5]",
}, },
}, },
}, },
], ],
}; };
} }
export default renderer; export default renderer;