当涉及到TypeScript时,webpack配置函数的类型是什么?



当配置是用TypeScript写的时候,我不知道webpack配置函数的类型。

当前我导出一个类型为Configuration的对象:

const config: Configuration = {
mode: 'production',
// ...
}
export default config;

应该改为导出一个函数:

export default (...): ... => {
return {
mode: 'production'
// ...
}
}

但是我不知道该函数的正确类型,并且在类型定义中找不到它:

https://github.com/webpack/webpack/blob/main/types.d.ts

任何想法?

目前似乎还没有一个完善的或推荐的解决方案。

与此同时,我所做的是:

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.ts

import type { WebpackConfigurationGenerator } from "./webpack.types";
const generateConfig: WebpackConfigurationGenerator = (env, argv) => {
// ...
};
export default generateConfig;

最新更新