不用atool-build打包,用标准webpack打包时,打包后文件运行报错

出错信息很明确了,model 没有 namespace 属性。
不是这样的,所有的model肯定是有namespace的,同样的源码,用atool-build打出来的就正常,我也是奇怪。用atool-build打包的时候有个很神奇的问题,做的按需加载,超过是10个模块的时候,就一直卡在哪里,所以才试着换成标准webpack来尝试,用webpack打包,不卡死,但是报这个错误。
路由的配置就是很标准的splitcode写法

看下报错堆栈信息看? https://github.com/dvajs/dva/blob/831b7d9/src/createDva.js#L242-L245 这一行抛的错。
我在createDva中加断点,看到的是这样

model有值,default有,但是

刚对比了一下用atool-build打包出来的,model就是直接有值的

webpack打包的是这样的:

没加 babel-plugin-add-module-exports ?
确实,是这个问题,加了export default{}的就可以了。
但是还是不懂为什么atool-build打包的时候,为什么卡住不动,这个问题很神奇,少一个模块就很快处理了。
atool-build 加入到维护中的项目里确实有点怪怪的。
换成 import 导入就ok了,
import indexModel from './model/index.js';
app.model(indexModel);
最终解决,还是需要add-module-exports才可以
{
"presets": [
[
"@babel/preset-env",
{
"modules": "cjs",
"useBuiltIns": "entry",
"corejs": 3,
"targets" : "> 0.25%, not dead"
}
], "@babel/preset-react"
],
"plugins": [
["add-module-exports", { "addDefaultProperty": true }],
]
}
Most helpful comment
换成
import导入就ok了,