哎呀,经过了两天的耗时,终于迎接来了接下来的结果:
好,现在来讲讲,打包步骤以及遇到的坑。
components下创建文件index.js:
// 导入组件,组件必须声明 name
import PlTable from './PlTable.vue'
// 为组件提供 install 安装方法,供按需引入
PlTable.install = function (Vue) {
Vue.component(PlTable.name, PlTable)
}
// 默认导出组件
export default PlTable
如上,需要注意的是,一定要生命组件的name!!!
接着,package.json中添加如下指令:
name后的名字可自定义
"build:lib": "vue-cli-service build --mode prod --target lib --name PlTable --dest lib src/components/index.js"
接着
yarn build:lib
然后你会遇到如下的报错:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
原因:node内存泄漏耗尽
修改办法:
全局安装 increase-memory-limit
yarn global add increase-memory-limit
成功后再次
yarn build:lib
发现又有了一个崭新的报错:
const requiredVersion = require('../package.json').engines.node --max-old-space-size=10240
SyntaxError: Unexpected identifier
so...继续尝试搜索,最后得到的解决方案是:
打开这个文件,删掉 --max-old-space-size=10240
然后再次
yarn build:lib
进入了漫长的等待...
大概耗时1h30m...
最终皆大欢喜:
然后我们得到了如下的文件:
将lib复制到新项目的public文件夹下,在main.js只引入:
import PlTable from "../../public/lib/PlTable.common.js";
......
Vue.use(PlTable)
然后就可以在父项目中随意使用了,注意这里组件名字对于子项目中抛出的组件名
-- 好了朋友们,我失败了,原因是引入的时候也内存溢出了。
组件中引入的时候也报错了,说是没找到声明...
目前正在尝试第二种方案,敬请期待...