vue-cli 3.x 开发插件并发布到 npm

一、调整项目结构

packages 目录,用来存放组件

examples 用作示例

二、修改配置

文件

= entry: , template: filename:

的命令,所以这里不需要再为 packages 目录配置 webpack

三、开发组件

textarea/src/main.vue 是组件的开发文件,具体代码这里就不展示了

需要注意的是,组件必须声明 name,这个 name 就是组件的标签

用于导出单个组件,如果要做按需引入,也需要在这里配置

<span style="color: #008000;">//<span style="color: #008000;"> 导入组件,组件必须声明 name
import <span style="color: #800000;">Textarea from './main.vue'

<span style="color: #008000;">//<span style="color: #008000;"> 为组件添加 install 方法,用于按需引入
<span style="color: #800000;">Textarea.install = <span style="color: #0000ff;">function<span style="color: #000000;"> (<span style="color: #800000;">Vue) {
<span style="color: #800000;">Vue.component(<span style="color: #800000;">Textarea.name,<span style="color: #800000;">Textarea)
}

export default<span style="color: #800000;"> Textarea

四、整合并导出组件

文件,实现组件的全局注册

<span style="color: #008000;">//<span style="color: #008000;"> 导入单个组件
import <span style="color: #800080;">Textarea from <span style="color: #800000;">'./textarea/index'

<span style="color: #008000;">//<span style="color: #008000;"> 以数组的结构保存组件,便于遍历
<span style="color: #0000ff;">const <span style="color: #800080;">components =<span style="color: #000000;"> [
<span style="color: #800080;">Textarea
]

<span style="color: #008000;">//<span style="color: #008000;"> 定义 install 方法
<span style="color: #0000ff;">const <span style="color: #800080;">install = <span style="color: #0000ff;">function<span style="color: #000000;"> (Vue) {
<span style="color: #0000ff;">if (<span style="color: #800080;">install.installed) <span style="color: #0000ff;">return<span style="color: #800080;">
install.installed = <span style="color: #0000ff;">true
<span style="color: #008000;">//<span style="color: #008000;"> 遍历并注册全局组件
<span style="color: #800080;">components.map(<span style="color: #800080;">component =><span style="color: #000000;"> {
<span style="color: #800080;">Vue.component(<span style="color: #800080;">component.name,component)
})
}

<span style="color: #0000ff;">if (<span style="color: #0000ff;">typeof <span style="color: #800080;">window !== <span style="color: #800000;">'undefined' &&<span style="color: #000000;"><span style="color: #800080;"> window.<span style="color: #800080;">Vue) {
install(<span style="color: #800080;">window.<span style="color: #800080;">Vue)
}

export default<span style="color: #000000;"> {
<span style="color: #008000;">//<span style="color: #008000;"> 导出的对象必须具备一个 install 方法
<span style="color: #000000;"><span style="color: #800080;"> install,<span style="color: #008000;">//<span style="color: #008000;"> 组件列表
<span style="color: #000000;"> ...<span style="color: #800080;">components
}

examples/main.js 中引入该组件

from .use()

五、打包组件

target: 默认为构建应用,改为 lib 即可启用构建库模式

name: 输出文件名

dest: 输出目录,默认为 dist,这里我们改为 lib

: 入口文件路径,默认为 src/App.vue,这里改为 packages/index.js

lib 命令

:

npm run lib 命令,编译组件

六、准备发布

package.json 添加组件信息

name:

version: 版本号,不能和历史版本号相同;

description:

main:

keyword:

author:

private:

license:

.npmignore 文件,设置忽略文件

////**<span style="color: #008000;"># local env files
.env.local
.env.
*<span style="color: #000000;">.local

<span style="color: #008000;"># Log files
npm-debug.log<span style="color: #000000;">
yarn-debug.log
<span style="color: #000000;">
yarn-error.log*<span style="color: #000000;"><span style="color: #008000;">

Editor directories and files

.idea
.vscode
<span style="color: #000000;">.suo
.ntvs
<span style="color: #000000;">.njsproj
<span style="color: #000000;">.sln
.sw*

七、发布到 npm

npm adduser 命令创建一个账户,或者到 注册

npm login 命令登录

翻译中文)

在发布之前,一定要确保组件已经编译完毕,而且 中的入口文件(main)的路径正确

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)