我正在尝试使用vue-cli 3和lerna创建一个monorepo。我现在有两个软件包:
common
和app
。 common
和app
都使用Vue
并将其导入。 common
具有这样的主要设置。 "main": "dist/common.umd.min.js"
当我在common
中导入app
时,进程崩溃并显示此错误消息,试图处理common.umd.min.js
:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
即使使用node --max-old-space-size=4096 node_modules/@vue/cli-service/bin/vue-cli-service.js serve
运行也会引发此错误。
[如果使用"main": "src/main.ts"
,则构建过程有效,但是当使用vue-cli-service build
时,Vue
捆绑了两次,一次捆绑为common
,一次捆绑为app
。
就像您注意到的那样,您在应用程序中两次捆绑了Vue。这可能是因为您将Vue作为common
和app
软件包的依赖项包含在内。
将app
软件包作为唯一依赖Vue的软件包,然后可以使common
软件包导出Vue plugin。然后,您的app
软件包可以安装common
插件,如下所示:
// main.js (in the app package)
import Vue from 'vue';
import plugin from 'my-common-package';
Vue.use(plugin);
我不确定导致内存不足错误的原因,但是仅使用一个Vue实例是一个好的开始。