简体   繁体   English

将自制库导入vue项目

[英]Importing self-made library into vue project

Intro: I've generated two projects with vue-cli ~4.2.0: parent-app and dummylib介绍:我用 vue-cli ~4.2.0 生成了两个项目: parent-appdummylib

Goal: to create DummyButton.vue component in dummylib project and import it in parent-app project.目标:dummylib项目中创建DummyButton.vue组件并将其导入到parent-app项目中。

What I've done:我所做的:

Followed this tutorial .遵循本教程

In dummylib's package.json I've inserted:在 dummylib 的package.json 中,我插入了:

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

and build-lib script:和构建库脚本:

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

dummylib's main.js: dummylib 的 main.js:

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

export default DummyButton

Also I've created DummyButton.vue and now vue serve src/components/DummyButton.vue successfully renders DummyButton component and npm run build-lib generates dist folder with dummylib.common.js此外,我创建了DummyButton.vue ,现在vue serve src/components/DummyButton.vue成功呈现 DummyButton 组件,并且npm run build-lib生成带有dummylib.common.js dist文件夹

In parent-app project I've made npm i ../dummylib and it has been added to package.json :parent-app项目中,我创建了npm i ../dummylib并将其添加到package.json

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

Problem:问题:

When I try to start parent-app with npm run serve a lot of linting errors occurs in ../dummylib/dist/dummylib.common.js .当我尝试使用npm run serve启动parent-app时,在../dummylib/dist/dummylib.common.js发生了很多../dummylib/dist/dummylib.common.js错误。 As far as i understand, ESlint should not even try to process dummylib.common.js , but it does and it results in ~2000 errors.据我了解,ESlint 甚至不应该尝试处理dummylib.common.js ,但它确实会导致 ~2000 错误。

I tried the same tutorial a while ago.不久前我尝试了相同的教程。 To fix it: in the main.js of the library I had to do has to do this:要修复它:在库的 main.js 中,我必须这样做:

const Components = {
  DummyButton
};

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

export default Components; 

instead of代替

export default DummyButton

Also did you remember to import the lib into your parents apps main.js你还记得把 lib 导入你父母的应用程序 main.js

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

You can also import straight into a component like so:您也可以像这样直接导入到组件中:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM