vue3组件库搭建并且发布到npm保姆教程连载一

前言

小时候的梦想是拥有一个自己的组件库(开玩笑哈),接触前端后,很多时候在npm install的时候,我在想我们安装的这些依赖发布者是如何将依赖发布到npm,并且可以让别人使用的,未知是让人害怕的,经过一系列学习和探索后,我也拥有了自己的组件库,也可以让别人使用我的组件库啦。

构建项目

vite官网三种构建vite项目的命令
1. npm create vite@latest
2. yarn create vite
3. pnpm create vite

我这边选用的是pnpm,打开命令行工具,运行后根据提示操作,框架选择vue。语言选择typeScript,也可以选择JavaScript,最后成功生成项目。
在这里插入图片描述

然后pnpm install安装依赖运行即可,运行后打开如下图,就说明构建成功啦
在这里插入图片描述

新建组件

在src的components目录下新增CwButton.vue

在这里插入图片描述

# CwButton.vue代码
<template>
  <div>
    <button class="test" @click="handleSubmit">我是测试要发布的按钮组件</button>

    <button class="test" @click="handleSubmit">我是测试要发布的按钮组件</button>
  </div>
</template>

<script lang="ts">
export default {
  //组件名称
  name: "cw-button",
};
</script>
<script lang="ts" setup>
function handleSubmit() {
  alert("发布组件一定成功");
}
</script>

<style>
.test {
  height: 100px;
  width: 200px;
  background-color: red;
  color: black;
}
</style>

在src的components目录下新增index.ts

在这里插入图片描述

// 引入封装好的组件
import CwButton from "./CwButton.vue";


const components = [CwButton];

const install = function(App:any, options:any) {
    components.forEach((component) => {
        App.component(component.name,component);
    });
};

// 批量导出*
export default { install } 

当前项目测试一下CwButton组件

  1. HelloWorld.vue中引入
    在这里插入图片描述
  2. 查看是否使用成功
    在这里插入图片描述

配置vite.config.ts

更多具体可参考vite官网库模式配置
在这里插入图片描述

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  build: {
    lib: {
      // 入口文件,因为库模式不能用html页面作为入口
      entry: resolve(__dirname,'src/components/index.ts'),
      // 库名称
      name: 'CwComponentTest',
      // 打包后文件的名称
      fileName: ((format) => `cw-componentTest.${format}.ts`),
      // 不写也可以,默认就是['es','umd']
      formats: ['es','umd']
    },
    // 自定义底层的 Rollup 打包配置
    rollupOptions: {
      // 确保某些库不进行打包,作为外部依赖
      external: ['vue'],
      output: {
        // 打包时全局变量Vue就是vue
        globals: {
          vue: 'Vue',
        }
      }
    }
  }
})

配置package.json

更多具体可参考vite官网库模式配置
在这里插入图片描述

{
  "name": "my-project",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview"
  },
  "files": [
    "dist"
  ],
  "main": "cw-component.umd.ts",
  "module": "cw-component.es.ts",
  "exports": {
    ".": {
        "import": "./cw-component.es.ts",
        "require": "./cw-component.umd.ts"
    }
  },
  "dependencies": {
    "vue": "^3.2.45"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.0.0",
    "typescript": "^4.9.3",
    "vite": "^4.0.0",
    "vue-tsc": "^1.0.11"
  }
}

打包组件库

运行pnpm build生成打包文件,自动生成dist目录,如下图即为成功
在这里插入图片描述

生成package.json

  1. 在dist目录下打开cmd,并且输入npm init -y,生成package.json文件
    在这里插入图片描述
  2. 修改package.json,下面两种main入口都行,选一种方式作为main入口,他们是不同的模块化方案,还可以生成cjs,vite官网的库模式中有描述。
    在这里插入图片描述
    在这里插入图片描述

npm注册账号

npm官网
注册完记住账号密码邮箱,邮箱很重要,要能收得到邮件

发布

  1. 注册好npm账号后,在dist目录下运行命令行npm login,输入账号密码和邮箱,通过验证后,如下图即为成功
    在这里插入图片描述

  2. 登录成功后运行命令行npm publish,最终发布成功
    在这里插入图片描述

  3. 发布成功在npm官网就可以搜索到啦
    在这里插入图片描述

其他项目中使用

  1. 通过vite构建一个项目,文章开头已经介绍过了

  2. 引入发布好的npm包,运行npm install cw-component-test

  3. main.ts中引入
    在这里插入图片描述

  4. App.vue中使用
    在这里插入图片描述

  5. 运行项目查看
    在这里插入图片描述

总结

制作一个简单的基础组件库还是很开心的,不过每次发布要初始化、要修改版本号、要发布等等,其实步骤挺繁琐的。所以为了更进一步,打算连载下一篇文章,下一篇文章主要介绍引入第三方依赖进行二次封装和通过编写脚本让我们达到一键打包、更新版本号、发布功能。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值