如何定义__WebpackModuleApi?解决git commit时的no-undef错误
解决TypeScript中
__WebpackModuleApi未定义的问题 针对你遇到的'__WebpackModuleApi' is not defined错误,提供以下几种可行的解决方法:
- 方法1:添加全局类型声明
在当前.vue文件顶部或者项目的types目录下新建webpack.d.ts文件,添加如下类型声明:
declare interface __WebpackModuleApi { RequireContext: import('webpack').RequireContext; } declare var __WebpackModuleApi: __WebpackModuleApi;
该声明会告诉TypeScript__WebpackModuleApi是全局可用的变量,并明确其类型结构。
- 方法2:通过typeof推导类型(更简洁)
无需显式引用__WebpackModuleApi,直接利用TypeScript的类型推导能力获取require.context的返回类型:
let importAll = (requireContext: ReturnType<typeof require.context>) => requireContext.keys().forEach(requireContext);
这种写法既省去了额外的类型声明,也能保证类型校验的正确性。
- 方法3:安装Webpack环境类型依赖
先安装webpack-env的类型包:
npm install @types/webpack-env --save-dev
接着在项目根目录的tsconfig.json中,将webpack-env添加到compilerOptions.types数组里:
{ "compilerOptions": { // 其他配置项... "types": ["webpack-env"] } }
安装并配置后,TypeScript会自动识别Webpack提供的所有全局API类型,包括require.context相关的定义。
内容的提问来源于stack exchange,提问作者Xueqin Li
相关产品推荐
相关产品推荐

