前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vite+vue3+ts开发组件库,发布npm

vite+vue3+ts开发组件库,发布npm

作者头像
路过君
发布2022-09-23 19:55:34
2.1K0
发布2022-09-23 19:55:34
举报
文章被收录于专栏:路过君BLOG from CSDN

版本

vite 3.0.7 vue 3.2.27

所需依赖

@types/node 使用resolve解析项目路径 vite-plugin-dts 1.4.1 自动生成ts声明文件

步骤

1. 修改package.json

  1. 修改配置模块入口指向构建输出的js文件
代码语言:javascript
复制
"main": "./dist/my-lib.umd.cjs",
"module": "./dist/my-lib.js"
  1. 修改ts声明文件指向构建输出的js声明文件
代码语言:javascript
复制
"types": ".dist/components/index.d.ts"
  1. 配置模块导入对应关系
代码语言:javascript
复制
"exports": {
  ".": {
    "import": "./dist/my-lib.js",
    "require": "./dist/my-lib.umd.cjs"
  }
},
  1. 修改需要发布的文件清单
代码语言:javascript
复制
"files": [
  "package.json",
  "README.md",
  "LICENSE",
  "dist"
],
  1. 设置发布配置 默认私有发布,需要收费,这里配置公共发布
代码语言:javascript
复制
"publishConfig": {
  "registry": "https://registry.npmjs.org",
  "access": "public"
},

2. 修改vite配置vite.config.ts

  1. 启用lib模式
  2. 配置vite-plugin-dts插件
代码语言:javascript
复制
import {resolve} from 'path'
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import dts from 'vite-plugin-dts'
// https://vitejs.dev/config/
export default defineConfig({
    plugins: [vue(), dts()],
    build: {
        lib: {
        	// 入口指向组件库入口模块
            entry: resolve(__dirname, 'src/components/index.ts'),
            name: 'my-lib',
            // 构建生成的文件名,与package.json中配置一致
            fileName: 'my-lib'
        },
        rollupOptions: {
            // 确保外部化处理那些你不想打包进库的依赖
            external: ['vue'],
            output: {
                globals: {
                    // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
                    vue: 'Vue'
                }
            }
        }
    }
})

3. 创建组件库入口模块

./components/index.ts

代码语言:javascript
复制
import MyComponent from "./my-component'"
import {App} from "vue";

// 按需导入用
export {
	MyComponent 
}
// 全局导入用
export default {
    install: (app: App) => {
        app.component('MyComponent', MyComponent)
    }
}

4. 构建项目

5. 发布npm

  1. 登录npm
代码语言:javascript
复制
npm login
  1. 发布(由于在package.json中指定了公共发布,这里不需要参数 --access public)
代码语言:javascript
复制
npm publish
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 版本
  • 所需依赖
  • 步骤
    • 1. 修改package.json
      • 2. 修改vite配置vite.config.ts
        • 3. 创建组件库入口模块
          • 4. 构建项目
            • 5. 发布npm
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档