import { defineConfig, UserConfigExport, ConfigEnv } from "vite";
import externalGlobals from "rollup-plugin-external-globals";
import vue from "@vitejs/plugin-vue";
import dts from "vite-plugin-dts"; const path = require("path"); // https://vitejs.dev/config/
export default defineConfig({
  build: {
    target: "esnext",
    outDir: "dist",
    lib: {
      entry: path.resolve(__dirname, "./src/main.ts"),
      name: "myLib", //全局变量的名称
      fileName: "my-lib", //输出文件的名字
    },
    rollupOptions: {
      plugins: [
     //CDN引入的话,使用这个插件做配置。但是这里引入的文件要是遵循umd格式的,此项只会在打包的文件中使用,未打包状态下的dev模式中不会走这里
        externalGlobals({
          vue: "Vue",
        }),
      ],
    },
  },
  plugins: [
    vue(),
    dts({
      insertTypesEntry: true,
      copyDtsFiles: false,
    }),
  ],
});

几个CDN的例子:

html页面:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- <script src="https://unpkg.com/vue@3.2.26/dist/vue.global.js"></script>
<script src="https://unpkg.com/vue-router@4.0.12/dist/vue-router.global.js"></script> -->
<script src="https://cdn.bootcdn.net/ajax/libs/vue/3.2.0-beta.7/vue.global.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/4.0.10/vue-router.global.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.21.1/axios.js"></script>
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

vite.config.js:

import { defineConfig } from "vite";
import externalGlobals from "rollup-plugin-external-globals"; import vue from "@vitejs/plugin-vue"; // https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
build: {
rollupOptions: {
plugins: [
externalGlobals({
"vue-router": "VueRouter",
'vue':'Vue',
'axios':'axios'
}),
],
},
},
});//其中key就是你引入的时候的名字,value就是引入的那个第三方库的全局变量名字

原因就是默认的打包入口 根目录的index.html删除了。这时候就需要对vite.config.ts进行配置了:

build: { // 打包设置
// Template for index.html 入口配置
rollupOptions:{
// 原因就是默认的打包入口 根目录的index.html删除了。这时候就需要对vite.config.ts进行配置了:
input: 'src/pages/default/index.html'
},
minify: 'terser', // 必须启用:terserOptions配置才会有效
terserOptions: {
compress: {
// 生产环境时移除console.log调试代码
drop_console:true,
drop_debugger: true,
}
}
},

最新文章

  1. 51nod1240(莫比乌斯函数)
  2. 【小白的CFD之旅】15 四种境界
  3. HTML特殊符号对照表
  4. linux command cp.
  5. 【Android进阶】Activity的四种加载模式
  6. mac 下nginx加入开机启动
  7. js观察者模式与Model
  8. 再回首UML之上篇
  9. Java基础:Java的四种引用
  10. Java学习08 (第一遍) - SpringMVC
  11. 如何批量下载网站中的超链接(一次性下载网页中所有可能的PDF文件)
  12. SNAT和DNAT
  13. [Zlib]_[初级]_[使用zlib库压缩和解压STL string]
  14. java对含有中文的字符串进行Unicode编码
  15. R语言学习——欧拉计划(1)Multiples of 3 and 5
  16. [Flutter] 一些面试可能会问基础知识
  17. 图论期末大作业编程题(如何判断一个4连通4正则图为无爪、无K4图)
  18. erlang init:stop()不起效
  19. openerp 6.0.2库存业务
  20. C语言中无符号与有符号问题

热门文章

  1. mysql错误号码2003 can&#39;t connect to mysql server on &#39;localhost&#39; (0)解决方案
  2. java 导入Excel数据校验判断哪行那列
  3. echart lengend 选中事件
  4. SqlServer基礎
  5. node 内存全局配置(--max-old-space-size)
  6. linux mint 中文支持
  7. Flink Table API &amp; SQL 自定义Redis Sink 代码实现
  8. Netty实战学习笔记
  9. GIS空间分析和建模复习重点3
  10. gin框架笔记