简介:我用vue-cli〜4.2.0生成了两个项目:parent-appdummylib

目标:在DummyButton.vue项目中创建dummylib组件并将其导入parent-app项目中。

我所做的:

遵循此tutorial

在dummylib的package.json中,我插入了:

"main": "./dist/dummylib.common.js",


和build-lib脚本:

"build-lib": "vue-cli-service build --target lib --name dummylib src/main.js",


dummylib的main.js:

import DummyButton from './components/DummyButton.vue'

export default DummyButton


我还创建了DummyButton.vue,现在vue serve src/components/DummyButton.vue成功渲染了DummyButton组件,并且npm run build-lib使用dummylib.common.js生成了dist文件夹。

parent-app项目中,我制作了npm i ../dummylib并将其添加到package.json中:

"dependencies": {
  ...
  "dummylib": "file:../dummylib",
  ...
},


问题:

当我尝试使用parent-app启动npm run serve时,../dummylib/dist/dummylib.common.js中会出现很多掉毛错误。据我了解,ESlint甚至不应该尝试处理dummylib.common.js,但确实可以处理,并且会导致〜2000错误。

最佳答案

我前一阵子尝试过相同的教程。要解决此问题:在该库的main.js中,我必须这样做:

const Components = {
  DummyButton
};

Object.keys(Components).forEach(name => {
  Vue.component(name, Components[name]);
});

export default Components;


代替

export default DummyButton


您还记得将lib导入到您的父母应用程序main.js中吗

import DummyLib from "DummyLib";
Vue.use(DummyLib);


您也可以像这样直接导入组件:

import DummyLib from "DummyLib";
export default {
  components: {
    ...DummyLib
  },
  //... rest of vue file script ...
}

09-17 05:00