Vite 打包 Vue 3 组件
build: { lib: { entry: "packages/components/index.ts", name: "funui", formats: ["umd", "iife"], fileName: "funui.js", }, rollupOptions: { external: ['vue'], output: { globals: { vue: 'Vue' } } } },
在 vite.config.ts 中配置 build.lib
属性, 其中 format 为打包的格式,提供给 html 直接使用可以选择 iife
需要注意的的是,打包 Vue 组件时不应该把 Vue 的相关依赖打包进去,否则会运行失败,所以在 rollup 中声明 vue 为外置依赖
还有组件中的 css,不能设置为 scoped
在 HTML 中通过 cdn 直接使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://cdn.jsdelivr.net/npm/vue@3.2.33/dist/vue.global.prod.js"></script> <script src="../../dist/funui.js.iife.js"></script> <link rel="stylesheet" href="../../dist/style.css"> <style> #app { width: 100vw; height: 100vh; } </style> </head> <body> <div> <fun-video src="https://www.runoob.com/try/demo_source/movie.mp4"></fun-video> <div> <fun-button>1111</fun-button> </div> </div> <script> const {FunVideo, FunButton} = window.funui const app = Vue.createApp({ components: { FunVideo: FunVideo, FunButton: FunButton, }, }).mount('#app'); </script> </body> </html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Git 常用命令
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论