mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi> Signed-off-by: Iku-turso <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
78 lines
1.5 KiB
TypeScript
78 lines
1.5 KiB
TypeScript
import ForkTsCheckerPlugin from "fork-ts-checker-webpack-plugin";
|
|
import type { Configuration } from "webpack";
|
|
import { MakePeerDependenciesExternalPlugin } from "./plugins/make-peer-dependencies-external";
|
|
import { ProtectFromImportingNonDependencies } from "./plugins/protect-from-importing-non-dependencies";
|
|
|
|
export type Paths = {
|
|
entrypointFilePath: string;
|
|
outputDirectory: string;
|
|
};
|
|
|
|
export const getNodeConfig = ({
|
|
entrypointFilePath,
|
|
outputDirectory,
|
|
}: Paths): Configuration => ({
|
|
name: entrypointFilePath,
|
|
entry: { index: entrypointFilePath },
|
|
target: "node",
|
|
mode: "production",
|
|
|
|
performance: {
|
|
maxEntrypointSize: 100000,
|
|
hints: "error",
|
|
},
|
|
|
|
resolve: {
|
|
extensions: [".ts", ".tsx", ".js"],
|
|
},
|
|
|
|
plugins: [
|
|
new MakePeerDependenciesExternalPlugin(),
|
|
new ProtectFromImportingNonDependencies(),
|
|
|
|
new ForkTsCheckerPlugin({
|
|
typescript: {
|
|
mode: "write-dts",
|
|
|
|
configOverwrite: {
|
|
include: [entrypointFilePath],
|
|
|
|
compilerOptions: {
|
|
declaration: true,
|
|
declarationDir: outputDirectory,
|
|
},
|
|
},
|
|
},
|
|
}),
|
|
],
|
|
|
|
output: {
|
|
path: outputDirectory,
|
|
|
|
filename: (pathData) =>
|
|
pathData.chunk?.name === "index"
|
|
? "index.js"
|
|
: `${pathData.chunk?.name}/index.js`,
|
|
|
|
library: {
|
|
type: "commonjs2",
|
|
},
|
|
},
|
|
|
|
externalsPresets: { node: true },
|
|
|
|
node: {
|
|
__dirname: true,
|
|
__filename: true,
|
|
},
|
|
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.ts(x)?$/,
|
|
loader: "ts-loader",
|
|
},
|
|
],
|
|
},
|
|
});
|