Typescript Vue插件(comp-lib)中的组件已注册,但赢得';t安装
我正在用Typescript和Sass在Vue中构建一个组件库。所以在Vue中实现这一点的方法是创建一个Vue插件,对吗 一个月以来,我一直在努力解决这个问题。我的Vue插件中的组件已注册,但它们不会装载到我想在其中使用它们的其他项目中 组件库 src/components/Button.vue src/lib.tsTypescript Vue插件(comp-lib)中的组件已注册,但赢得';t安装,typescript,vue.js,plugins,sass,Typescript,Vue.js,Plugins,Sass,我正在用Typescript和Sass在Vue中构建一个组件库。所以在Vue中实现这一点的方法是创建一个Vue插件,对吗 一个月以来,我一直在努力解决这个问题。我的Vue插件中的组件已注册,但它们不会装载到我想在其中使用它们的其他项目中 组件库 src/components/Button.vue src/lib.ts 从“Vue”导入 从“./Components”导入组件 导出默认值{ 安装(Vue:typeof _-Vue,选项:任意){ 用于(常量键入组件){ if(Components.
从“Vue”导入
从“./Components”导入组件
导出默认值{
安装(Vue:typeof _-Vue,选项:任意){
用于(常量键入组件){
if(Components.hasOwnProperty(键)){
component(`lib-${key}`,Components[key])
}
}
}
}
package.json
这里我使用release
命令,它还执行lib
命令,为我的comp库构建lib版本
其他项目
src/main.ts
从“3oilerplate”导入库
Vue.use(Lib)
在这里,我正在导入已编译的Typescript Vue库(3oilerplate.common.js
)
src/Main.vue
试验
在这里,我尝试使用导入的Vue插件中的一个组件,它不会在浏览器中给我错误,因此该组件会注册,只是不会在浏览器中安装
请帮帮我,真希望有人看到我做错了什么
<template>
<button
class="Button"
:disabled="disabled"
:class="{'is-block': block, 'is-disabled': disabled }"
>
<slot></slot>
</button>
</template>
<script lang="ts">
import { Vue, Component, Prop } from 'vue-property-decorator'
@Component({
name: 'lib-button'
})
export default class extends Vue {
@Prop() block!: boolean
@Prop() disabled!: boolean
@Prop() outline!: boolean
}
</script>
<style lang="scss" scoped>
</style>
{
"name": "3oilerplate",
"version": "x.x.x",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"lib": "vue-cli-service build --target lib --name 3oilerplate ./src/lib.ts",
"test:unit": "vue-cli-service test:unit",
"release": "npm run lib && npm version patch && npm publish --access public",
"release:minor": "npm run lib && npm version minor && npm publish --access public",
"release:major": "npm run lib && npm version major && npm publish --access public"
},
"files": [
"dist/",
"src/",
"public/",
"*.json",
"*.js"
],
"main": "./dist/3oilerplate.common.js",
<template>
<Layout>
<Body>
<lib-button>Test</lib-button>
</Layout>
</template>