快应用TypeError: The ‘compilation‘ argument must be an instance of Compilation错误

完整日志:

d:\QuickAppProjects\quickapp-component\node_modules\fa-toolkit\node_modules\webpack\lib\NormalModule.js:227 throw new TypeError( ^ TypeError: The 'compilation' argument must be an instance of Compilation at NormalModule.getCompilationHooks (d:\QuickAppProjects\quickapp-component\node_modules\fa-toolkit\node_modules\webpack\lib\NormalModule.js:227:10) at d:\QuickAppProjects\quickapp-component\node_modules\fa-toolkit\node_modules\webpack\lib\LoaderOptionsPlugin.js:46:17

原因:

这个问题大多数情况下是由于 Webpack 版本不匹配 导致的。

如何验证:

在项目根目录运行以下命令,看看有哪些版本:

npx webpack -v

npm ls webpack

如果结果里有多个版本,比如:

my-project@1.0.0

├── webpack@5.91.0

└─┬ fa-toolkit@1.2.3

└── webpack@4.46.0

那就确定是版本冲突引起的。

解决办法:

强制 fa-toolkit 使用项目根目录的 webpack 实例,我们可以用 npm 的「依赖去重」机制来让所有依赖共享同一个 webpack。

1.执行以下命令:

删除旧模块

rm -rf node_modules package-lock.json

重新安装依赖并去重

npm install

npm dedupe

2.然后再执行:

npm ls webpack

3.理想输出应该变成:

│ ├─┬ babel-loader@8.2.5

│ │ └── webpack@5.76.2 deduped

│ ├─┬ stylus-loader@7.0.0

│ │ └── webpack@5.76.2 deduped

│ ├─┬ webpack-cli@5.0.2

│ │ ├─┬ @webpack-cli/configtest@2.1.1

│ │ │ └── webpack@5.76.2 deduped

│ │ ├─┬ @webpack-cli/info@2.0.2

│ │ │ └── webpack@5.76.2 deduped

│ │ ├─┬ @webpack-cli/serve@2.0.5

│ │ │ └── webpack@5.76.2 deduped

│ │ └── webpack@5.76.2 deduped

│ └─┬ webpack@5.76.2

│ └─┬ terser-webpack-plugin@5.3.14

│ └── webpack@5.76.2 deduped

└─┬ less-loader@10.2.0

└── webpack@5.76.2 deduped

webpack版本都一样了。

补充 fa-toolkit 是什么

fa-toolkit 一般会集成一系列 webpack 插件和工具,用来完成快应用的构建流程,例如:

功能模块 说明
🔧 webpack 配置生成 自动生成适配快应用项目结构的 webpack 配置(入口、输出、loader等)
📦 打包优化 压缩、去注释、资源合并、生成 .rpk 或 .hap 包
📜 资源编译 编译 .ux / .qxml / .css / .js 等文件为快应用识别格式
🧩 组件打包 当你写一个"快应用组件库"(比如广告组件)时,它帮助你打包成 npm 模块或独立组件
🧠 开发时热更新 监听源码变动并自动构建(类似 webpack-dev-server 的行为)
相关推荐
FungLeo16 小时前
成为全栈·Go 后端篇·契约一致性与差分测试:两套实现如何互相校验
golang·node.js·go·合约测试·差分测试·成为全栈·api兼容
月夏21 小时前
前端第一次接自己的后端:mock 切真接口踩了 2 个坑,组件只改了一行 import
前端·后端·node.js
SEO_juper21 小时前
Node.js 页面主题聚焦度检测:title 和正文各说各的,AI 也读不懂
开发语言·人工智能·node.js·seo·外贸独立站
SEO_juper1 天前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
king13598745502 天前
AI Agent 端云协同选型:Node.js 任务成本算例与权限检查清单(2027—2028 展望)
人工智能·ai·node.js·ai agent
居里先生7522 天前
PDF 批注到底存在文件的哪里?从 /Annots 讲到导出验证
node.js
无巧不成书02182 天前
Tomcat部署JSP文件完整指南:手动部署+IDEA工程化实现 附404访问错误全排查
java·ide·windows·tomcat·intellij-idea·js
MasonYyp3 天前
安装npm依赖仓库Verdaccio
前端·npm·node.js
编程的一拳超人4 天前
【元宝搜索开发者征文大赛】四语实战:Java/Python/Go/Node.js 构建 AI 搜索应用全攻略
java·python·golang·node.js·agent
lucas_AI4 天前
今年 2 月就修好的漏洞,10 月才炸:HTTP2Shell 把 Node、Python 一锅端
node.js