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

Onk*_*tem 3 typescript webpack

当配置是用 TypeScript 编写时,我无法弄清楚 webpack 配置函数的类型。

目前我导出一个类型为Configuration

const config: Configuration = {
  mode: 'production',
  // ...
}
export default config;
Run Code Online (Sandbox Code Playgroud)

应改为导出函数:

export default (...): ... => {
  return {
    mode: 'production'
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

Igo*_*kov 5

目前似乎没有成熟或推荐的解决方案。

\n

与此同时,我所做的就是这样的。

\n

webpack.types.ts

\n
import type { Configuration } from "webpack";\nimport type { Configuration as DevServerConfiguration } from "webpack-dev-server";\n\nexport interface WebpackConfiguration extends Configuration {\n  devServer?: DevServerConfiguration;\n}\n\ntype CLIValues = boolean | string;\n\ntype EnvValues = Record<string, CLIValues | Record<string, Env>>;\n\ninterface Env extends EnvValues {}\n\ntype Argv = Record<string, CLIValues>;\n\nexport interface WebpackConfigurationGenerator {\n  (env?: Env, argv?: Argv): Configuration |\xc2\xa0Promise<Configuration>;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

webpack.config.ts

\n
import type { WebpackConfigurationGenerator } from "./webpack.types";\n\nconst generateConfig: WebpackConfigurationGenerator = (env, argv) => {\n  // ...\n};\n\nexport default generateConfig;\n
Run Code Online (Sandbox Code Playgroud)\n