将自制库导入vue项目

问题描述 投票:0回答:1

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

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

我做了什么:

跟随此tutorial

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

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

和构建库脚本:

"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错误。

javascript vue.js vuejs2 eslint vue-cli
1个回答
0
投票

我前一段时间尝试过相同的教程。要解决这个问题:在库的main.js中,我必须这样做:

const Components = {
  DummyButton
};

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

export default Components; 

而不是

export default DummyButton

您还记得将库导入到您的父母应用main.js中吗?>

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

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

import DummyLib from "DummyLib";
export default {
  components: {
    ...DummyLib
  },
  //... rest of vue file script ...
}
© www.soinside.com 2019 - 2024. All rights reserved.