Vad är typen på webpack-konfigurationsfunktionen när det gäller TypeScript?
Jag kan inte lista ut typen på webpack-konfigurationsfunktionen när konfigurationen är skriven i TypeScript.
För närvarande exporterar jag ett objekt vars typ är Configuration:
const config: Configuration = {
mode: 'production',
// ...
}
export default config;
vilket bör ändras till att exportera en funktion:
export default (...): ... => {
return {
mode: 'production'
// ...
}
}
men jag vet inte den korrekta typen av den funktionen och kan inte hitta den bland typdefinitionerna:
https://github.com/webpack/webpack/blob/main/types.d.ts
Några idéer?
Svar #1
Det verkar som att det inte finns någon väletablerad eller rekommenderad lösning för tillfället.
Under tiden gjorde jag så här.
webpack.types.ts:
import type { Configuration } from "webpack";
import type { Configuration as DevServerConfiguration } from "webpack-dev-server";
export interface WebpackConfiguration extends Configuration {
devServer?: DevServerConfiguration;
}
type CLIValues = boolean | string;
type EnvValues = Record<string, CLIValues | Record<string, Env>>;
interface Env extends EnvValues {}
type Argv = Record<string, CLIValues>;
export interface WebpackConfigurationGenerator {
(env?: Env, argv?: Argv): Configuration | Promise<Configuration>;
}
webpack.config.tsimport type { WebpackConfigurationGenerator } from "./webpack.types";
const generateConfig: WebpackConfigurationGenerator = (env, argv) => {
// ...
};
export default generateConfig;
