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

yizhihongxing

下面我将详细讲解“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日

相关文章

  • vue.js语法及常用指令

    下面是关于“vue.js语法及常用指令”的完整攻略。 一、Vue.js语法 Vue.js 是一款流行的 JavaScript 框架,它的语法和模板采用了基于 HTML 的模板语法,简化了前端开发中数据绑定和 DOM 操作的复杂度。下面是 Vue.js 的一些基本语法: 1. 基本模板 Vue.js 的基本模板由普通的 HTML 标签和 Vue.js 的特殊属…

    Vue 2023年5月27日
    00
  • Vue.js 中的 v-model 指令及绑定表单元素的方法

    当使用 Vue.js 开发表单时,经常需要将表单元素的值(如文本输入框、单选框、复选框等)与 Vue 组件中的数据进行绑定,这就需要用到 Vue.js 中的 v-model 指令了。下面是具体的操作方法: 绑定文本输入框的值 将文本输入框的值与 Vue 组件中的 data 属性进行双向绑定的方法,示例如下: 在 Vue 组件的 template 中,定义一个…

    Vue 2023年5月28日
    00
  • 使用vue打包时vendor文件过大或者是app.js文件很大的问题

    处理vue打包时vendor文件过大或者是app.js文件很大的问题可以通过以下方法进行: 1. 使用动态导入 (Dynamic Import) 动态导入是Vue.js 2.6版本开始提供的一个特性,可以让你在运行时(runtime)条件下去组织代码切割,从而减小打包体积。它是通过 import() 语法实现的。使用动态导入可以减少app.js的大小,提高页…

    Vue 2023年5月28日
    00
  • Vue虚拟DOM详细介绍

    Vue虚拟DOM详细介绍 什么是虚拟DOM 虚拟DOM(Virtual DOM)是指用JavaScript对象模拟真实DOM的一种技术。在Vue中,全部视图都是通过虚拟DOM来实现。 由于真实DOM对于JavaScript的操作过于频繁,因此虚拟DOM被设计出来,用于减少频繁操作真实DOM的次数。当数据发生变化时,Vue先对虚拟DOM进行操作,再通过diff…

    Vue 2023年5月28日
    00
  • Vue冷门技巧递归组件实践示例详解

    让我来详细讲解一下“Vue冷门技巧递归组件实践示例详解”的完整攻略。 什么是递归组件? 递归指的是一个函数在执行的过程中调用了自身。同样的,在Vue中,递归组件指的是一个组件在自身内部使用自身。这种组件的实现方式通常是通过组件的name选项和components来定义自身。 如何实现递归组件? 在Vue中,想要实现递归组件,需要在组件的选项中设置组件的nam…

    Vue 2023年5月29日
    00
  • Vue 中v-model的完整用法及原理

    首先我们先来了解一下v-model的基本用法和原理。 v-model的基本用法 在Vue中,v-model被用来实现表单元素和Vue实例之间的双向数据绑定。v-model通常和表单元素input、textarea、select等配合使用。将 v-model 赋值给一个普通的变量,这个变量就可以被修改以响应用户的输入和交互。 v-model的基本语法如下: &…

    Vue 2023年5月27日
    00
  • vue使用video插件vue-video-player的示例

    下面是使用Vue.js框架中的插件vue-video-player的示例攻略: 准备工作 在开始之前,你需要先安装Vue.js和vue-video-player插件。如果你还没有安装这两个工具,请参考以下命令进行安装: # 安装 Vue.js npm install vue # 安装 vue-video-player npm install vue-vide…

    Vue 2023年5月27日
    00
  • 修改vue+webpack run build的路径方法

    下面是修改vue+webpack run build的路径方法的详细攻略。 1. 理解打包路径 在修改打包路径之前,我们首先需要理解打包路径的概念。在使用vue-cli构建项目时,我们可以通过执行npm run build命令来进行打包,打包后的文件默认会被生成到dist目录下。如果我们需要修改打包后文件的输出路径,那么就需要修改webpack的配置文件。 …

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