vue3+vite自定义封装vue组件发布到npm包的全过程

下面我将详细讲解“vue3+vite自定义封装vue组件发布到npm包的全过程”,并且提供两个示例以供参考。

1. 准备工作

首先,我们需要进行一些准备工作,包括:
- 安装node
- 创建自己的npm账号

2. 创建项目

我们可以使用vue-cli来创建一个基于vue3vite的vue项目,命令如下:

$ npm install -g @vue/cli
$ vue create my-component-library

在创建时选择插件BabelRouterVuexCSS Pre-processors

3. 开始编写组件

src/components目录下创建自己的组件,并通过export暴露出来,例如:

<template>
  <div>{{ msg }}</div>
</template>

<script>
export default {
  name: 'MyComponent',
  props: {
    msg: String,
  },
}
</script>

4. 打包

使用vite进行打包,命令如下:

$ npm install -D vite

package.json中添加如下scripts:

"scripts": {
  "build": "vite build --lib --name my-component-library src/main.js"
}

执行npm run build即可打包成功。

5. 发布到npm

使用npm发布刚刚打包好的组件,命令如下:

$ npm login
$ npm publish

要注意的是,除了src/components目录下的代码,还需要将打包后的文件放到根目录下。

"main": "dist/my-component-library.umd.js",
"module": "dist/my-component-library.esm.js",
"typings": "dist/my-component-library.d.ts",

示例1

下面是一个简单的HelloWorld组件示例,代码如下:

// src/components/HelloWorld.vue
<template>
  <h1>{{ msg }}</h1>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String,
  },
}
</script>

使用@vue/cli的命令行工具创建一个组件库,命令如下:

$ npm install -g @vue/cli
$ vue create my-component-library

在创建时选择插件BabelRouterVuexCSS Pre-processors,然后将src/components/HelloWorld.vue复制到创建出来的my-component-library文件夹里,修改src/App.vue内容如下:

<template>
  <div class="hello">
    <HelloWorld msg="Welcome to Your Vue.js + TypeScript Library" />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld,
  },
}
</script>

最后执行npm run build打包并发布到npm即可。

示例2

下面是一个自定义封装的Button组件示例,代码如下:

// src/components/Button.vue
<template>
  <button :class="className" @click="handleClick">
    <slot>{{ text }}</slot>
  </button>
</template>

<script>
export default {
  name: 'MyButton',
  props: {
    text: String,
    className: String,
  },
  methods: {
    handleClick() {
      this.$emit('click')
    },
  },
}
</script>

同样是先使用@vue/cli创建一个组件库,然后将src/components/Button.vue复制到my-component-library文件夹里,修改src/App.vue内容如下:

<template>
  <div class="hello">
    <MyButton class-name="my-btn" @click="handleClick">Click me!</MyButton>
  </div>
</template>

<script>
import MyButton from './components/Button.vue'

export default {
  name: 'App',
  components: {
    MyButton,
  },
  methods: {
    handleClick() {
      alert('You clicked the button!')
    },
  },
}
</script>

最后执行npm run build打包并发布到npm即可。

以上就是“vue3+vite自定义封装vue组件发布到npm包的全过程”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3+vite自定义封装vue组件发布到npm包的全过程 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 使用canvas仿Echarts实现金字塔图的实例代码

    使用canvas模拟 Echarts 实现各种图表类型,并非易事,尤其是对于初学者。但是,在较少甚至没有 Echarts 库的情况下,这种方法能够使你实现各种基本图形类型,受控制的小部件,重新构建以及基于自定义的视觉样式。 实现金字塔图的攻略 以下为使用 canvas 绘制金字塔图的实现步骤: 步骤 1 – 创建 HTML 元素 创建 HTML5 页面,并添…

    Vue 2023年5月28日
    00
  • Vue3中的ref为何要用.value进行值的调用呢

    在Vue3中,ref用作响应式数据的定义和访问,但其访问方式与Vue2.x有所不同,需要使用 .value 属性来访问具体的值。 这是因为 Vue3.x 中的响应式系统使用了 ES6 的 Proxy,而 .value 非常巧妙地利用了 ES6 Proxy 的 get 和 set 方法。每个 ref 对象本身其实不是一个值,而是一个包含一个值的对象,并且这个值…

    Vue 2023年5月27日
    00
  • vue 数据操作相关总结

    Vue 数据操作相关总结 在 Vue 中,我们经常需要对数据进行一系列的操作,包括数据的绑定、修改、计算等。本文将总结 Vue 中常用的数据操作方法,并提供相关的示例。 Vue 数据双向绑定 Vue 的数据双向绑定非常方便,在 HTML 模板中,我们只需要使用 v-model 指令,即可实现对数据的双向绑定。例如: <template> <…

    Vue 2023年5月28日
    00
  • 在Vue里如何把网页的数据导出到Excel的方法

    在Vue中如何把网页的数据导出到Excel在很多情况下都是必须的,下面给出一种基于js-xlsx的实现方式: 步骤1:安装js-xlsx 在Vue项目中安装js-xlsx,可以使用npm安装: npm install xlsx –save 或者使用bower安装: bower install js-xlsx –save 步骤2:编写Vue组件 Vue组件…

    Vue 2023年5月27日
    00
  • vue如何在style标签中使用变量(数据)详解

    下面是“vue如何在style标签中使用变量(数据)详解”的完整攻略: 1. 介绍 Vue提供了一个非常方便的方法,允许您在模板中和js代码中使用变量,但是在style标签中使用变量比较麻烦。通常情况下,我们可以使用CSS预处理器来处理这个问题,比如Sass或者Less。不过Vue还提供了其他办法,来让我们方便地在style标签中使用变量,下面将详细介绍。 …

    Vue 2023年5月27日
    00
  • 详解Vue新增内置组件的使用

    详解Vue新增内置组件的使用 作为一个流行的前端框架,Vue一直在不断地发展和更新。最近,Vue又新增了一些内置组件,这些组件可以方便地实现一些常见的功能,同时也可以提高开发效率。本文将详细介绍Vue新增的内置组件的使用方法,并提供两个实例说明。 Vue新增的内置组件 Vue新增的内置组件有以下几个: <transition>:用于在元素插入或删…

    Vue 2023年5月27日
    00
  • antd vue 表格rowSelection选择框功能的使用方式

    关于“antd vue 表格rowSelection选择框功能的使用方式”,以下是详细的攻略: 1. 引入antd vue表格和rowSelection 首先,我们需要在代码中引入antd vue表格和rowSelection选择框,具体方法如下: <template> <a-table :columns="columns&quo…

    Vue 2023年5月29日
    00
  • Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)

    下面我将为您详细讲解如何使用Vue.js实现双向数据绑定,包括表单自动赋值和表单自动取值。 什么是双向数据绑定 在介绍如何实现双向数据绑定方法之前,先来简单了解一下什么是双向数据绑定。双向数据绑定是指数据模型和视图层之间的自动同步。在Vue.js中,数据模型和视图层之间的绑定是单向的,也就是说,当我们改变数据模型时,视图层会自动更新;但是,当我们修改视图层的…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部