创建组件库

1、使用vue-create 创建项目

 

 

vue-create 创建的项目依赖默认放在dependencies内,手动把他放在devDependencies内。原因看下这个博客。

我曾经试过,将插件放在dependencies下。在业务引用的时候,确实报错(Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders)

 

https://blog.csdn.net/LuckyWinty/article/details/138144316

 

 

 

 

然后新建example文件夹和文件,注意文件层级。然后将src下的main.jsApp.vue剪切过去。

默认项目入口是src下的main.js。和App.vue。我们这么做,是把项目启动改到example文件下。这样example变成插件本地启动的入口也就变成使用插件的样例展示了。

那就要修改vue.config.js内文件入口了,将文件指向example/main.js。

 

 pages: {

    index: {

      entry: 'example/main.js'

    }

  },

  

 

 

 

 

然后,我们就可以在src正常开发组件了。这里我就不写了,直接使用项目自带的HelloWorld.vue组件。此时项目正常启动。插件在本地开发就结束了。接下来开始进行打包的配置

 

 

 

src下新建一个main.js作为打包的出口.install 方法见参考vue开发插件文档

https://v2.cn.vuejs.org/v2/guide/plugins.html#%E4%BD%BF%E7%94%A8%E6%8F%92%E4%BB%B6

内容如下

import HelloWorld from './components/HelloWorld.vue'

const comArr = [

    HelloWorld

]

// 批量组件注册

 

/* istanbul ignore if */

const install = function (Vue) {

    if (install.installed) return

    comArr.forEach((com) => {

        Vue.component(com.name, com) // com.name的name就是你自定义封装的组件的name

    })

}

if (typeof window !== 'undefined' && window.Vue) {

    install(window.Vue)

}

export default {

    install

}

  

 

 

 

 

 

 

 

打包配置结束,需要开始配置打包命令,

package.json 文件下

scripts下添加命令vue-cli-service build --target lib ./src/main.js --name sd --dest lib

 

 

npm run lib执行打包

 

 

version是包的版本号,修改后版本要大于上一个,便于推送

Private 删除。

Main 是包入口,在打包文件夹下可以看出是lib/sd.umd.js

Keywords 包搜索关键词

Author 作者

Description 描述词

Files 暴露文件(指插件被安装后,依赖包显示内容。)

 

 

接着本地测试包,打开main.js

引入并挂载到VUE

 

 

删除App.vue 内的引入HelloWorld组件代码

 

 

 

重新执行启动命令。可以看看到页面和引入HelloWorld.vue效果一样。说明插件开发成功

以上是单个组件插件,有的时候一个插件包可能包含多个组件,且可以按需引入。

将上面HelloWorld.vue 改成index.vue,并放入新创建的HelloWorld文件夹中。在HelloWorld文件夹下新建一个index.js

Index.js内容

import index from './index.vue'

index.install = function (Vue) {

  Vue.component(index.name, index)

}

// 默认导出方式导出

export default index

  

 

 

剩下的就是推送到npm 了

 

posted @ 2025-05-28 16:34  辛夷不改年年色  阅读(17)  评论(0)    收藏  举报