首页 > 其他分享 >Vue 组件打包记录

Vue 组件打包记录

时间:2024-06-23 13:31:22浏览次数:20  
标签:src resolve const vue Vue build 组件 vite 打包

一、打包脚本

const path = require('path')
const fs = require('fs')
const { build, defineConfig } = require('vite')
const vue = require('@vitejs/plugin-vue')
const dts = require('vite-plugin-dts')
const DefineOptions = require('unplugin-vue-define-options/vite')
const rootDir = path.resolve(__dirname, '../')
const outDir = resolve(rootDir+'/src/genius/dist')
const baseConfig = defineConfig({
  plugins: [
    DefineOptions(),
    dts({
      include: ['./src/packages/utils','./src/packages/genius', './src/packages/components'],
      outputDir: path.resolve(outDir, 'types')
    })
  ],
  build: {
    lib: {
      entry: resolve('./src/packages/index.ts'),
      name: 'genius',
      fileName: format => `index.${format}.js`
    },
    outDir,
    rollupOptions: {
      // 确保外部化处理那些你不想打包进库的依赖
      external: ['vue',"cesium","element-plus"],
      output: {
        format:['cjs','es','umd','life'],
        // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
        globals: {
          vue: 'vue',
          cesium:'cesium'
        }
      }
    }
  }
})

main()
async function main() {
  // build
  await build(baseConfig)
  await copyFiles()
}
async function copyFiles() {
  fs.copyFileSync(
    resolve('./src/packages/package.json'),
    resolve('./src/genius/package.json')
  )
}
function resolve(...urlOrUrls) {
  console.log(rootDir);
  return path.resolve(rootDir, ...urlOrUrls)
}

二、package.json 配置

  "scripts": {
    "dev": "vite",
    "build": "run-p type-check build-only",
    "pac": "node ./scripts/build.js",
    "preview": "vite preview",
    "build-only": "vite build",
    "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false"
  },

npm run pac 打包命令

三、登录包管理服务器

四、发版

 

标签:src,resolve,const,vue,Vue,build,组件,vite,打包
From: https://www.cnblogs.com/xiaoqiyaozou/p/18263324

相关文章

  • Vue3中watch怎么解决静态问题的
    在Vue3中,`watch`函数用于观察和响应Vue响应式系统中的数据变化。Vue3的响应式系统基于Proxy,这使得它能够更细粒度地追踪依赖和更新DOM。然而,在使用`watch`时,有时可能会遇到所谓的“静态问题”,这通常是指`watch`函数内部引用的静态数据或计算属性在组件的整个生命......
  • 03_组件、事件、插槽、发布订阅
    文档:组件基础|Vue.js(vuejs.org)什么是组件:vue组件可以将一个复杂的应用程序(或者是页面)拆分成多个小的模块,每个模块可以独立的进行开发和测试。在Vue当中组件是通过虚拟DOM来实现的,可以将复杂的页面拆分多个小的DOM节点,每个节点对应一个组件,然后这些组件组合成一个完整的页......
  • 269:vue+openlayers 利用 MultiPoint 显示多点
    作者:还是大剑师兰特,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,CSDN知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。查看本专栏目录-本文是第269个示例文章目录一......
  • 学生读书笔记共享系统-毕业设计-Springboot+mysql+Vue
    介绍学生读书笔记共享系统是一款专为学生设计的平台,旨在通过信息化手段实现读书笔记的共享和交流。系统分为管理端和用户端两个角色,分别为管理员和学生用户提供不同的功能模块,满足各自的需求。该系统不仅促进了学生之间的学习交流,还提升了学习效率和笔记管理的便捷性。技术栈......
  • 基于springboot的技术交流和分享平台 毕业设计 springboot+VUE
    介绍在当今迅速发展的信息时代,技术交流和知识分享已成为推动创新和个人成长的重要途径。然而,许多现有平台在笔记管理和分类上存在不足,缺乏有效的知识组织和分享机制,导致信息获取效率低下,交流互动有限。为了解决这些问题,我开发了一款基于SpringBoot的技术交流和分享平台。该平......
  • 02_Vue常用的一些指令
    文档:内置指令|Vue.js(vuejs.org) 1.v-on,给元素绑定事件监听器<!--方法处理函数--><buttonv-on:click="doThis"></button><!--缩写--><button@click="doThis"></button><!--点击事件将最多触发一次--><buttonv-on:click.......
  • antdesign-vue3 List的分页器最全配置
    AntDesignVue官网:https://www.antdv.com/components/list-cn何时使用#最基础的列表展示,可承载文字、列表、图片、段落,常用于后台数据展示页面。<a-listsize="large"bordered:data-source="listData":pagination="pagination"><......
  • 一、若依--P2--P5【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi-V
    学习视频【黑马程序员Java最新AI+若依框架项目开发新方案视频教程,基于RuoYi-Vue3前后端分离版本,从前端到后端再到AI智能化应用全通关】https://www.bilibili.com/video/BV1pf421B71v/?p=6&share_source=copy_web&vd_source=3949d51b57b2891ea14d6e51c792bef6P2:前端框架搭......
  • 基于SpringBoot+Vue+uniapp的新生报到系统的详细设计和实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的点餐系统的详细设计和实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......