0.0.30 • Published 10 months ago

utils-vue3 v0.0.30

Weekly downloads
-
License
MIT
Repository
-
Last release
10 months ago

实现个人工具和组建二合一的库 支持按需引入

打包脚本

基于vite vue工程 ts模板 使用fast-glob 读取所有文件 过滤 处理成 entry 需要的类型

// vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve, extname } from 'path'
import dts from 'vite-plugin-dts'
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
import vueJsx from '@vitejs/plugin-vue-jsx'
import glob from 'fast-glob'

// 读取目录下的所有文件 const getLists = async () => { const baseURL = resolve(__dirname, 'src') const files = await glob(**/*, { cwd: baseURL, absolute: true, })

return files.reduce((result, v) => {
	if (['.vue', '.tsx'].includes(extname(v))) {
		const paths = v.replace(resolve(__dirname), '').split('/')
		return {
			...result,
			...{
				[paths[paths.length - 2].toLowerCase()]: v.replace(
					resolve(__dirname),
					''
				),
			},
		}
	} else {
		return { ...result }
	}
}, {})

}

export default defineConfig(async ({ mode }) => { const entries = await getLists() // mode 是脚本中的参数 return { plugins: dts({ cleanVueFileName: true, copyDtsFiles: true }), cssInjectedByJsPlugin({ jsAssetsFilterFunction: function (outputChunk) { const facadeModuleId = outputChunk.facadeModuleId if (!facadeModuleId) return false return !facadeModuleId.includes('tsx') }, }), vue(), vueJsx(), , resolve: { alias: { find: '@', replacement: resolve(dirname, './src') }, { find: '@lib', replacement: resolve(dirname, './lib') }, { find: '@components', replacement: resolve(__dirname, './src/components'), }, , }, build: { minify: mode !== 'development', sourcemap: true, // 开启sourcemap lib: { // Could also be a dictionary or array of multiple entry points entry: { ...entries, index: resolve(dirname, 'src/index.ts') }, // entry: resolve(dirname, 'src/index.ts'), // 打包后的文件名称 // fileName: (mode, name) => ${name}.${mode}.js, fileName: 'index', }, rollupOptions: { // 确保外部化处理那些你不想打包进库的依赖 external: 'vue', output: [ { format: 'es', dir: 'dist/components', entryFileNames: 'name/index.es.js', //name对应key值,分别构建到不同文件夹 globals: { vue: 'vue', }, }, { format: 'cjs', dir: 'dist/components', entryFileNames: 'name/index.cjs.js', //name对应key值,分别构建到不同文件夹 globals: { vue: 'vue', }, }, ], }, }, } })

## 打包遇到问题

#### vite-plugin-dts 无法修改木有
#### output中目录修改成和vite-plugin-dts生成的样式文件类型一致
0.0.30

10 months ago

0.0.28

10 months ago

0.0.27

10 months ago

0.0.26

10 months ago

0.0.25

10 months ago

0.0.23

10 months ago

0.0.22

10 months ago

0.0.21

10 months ago

0.0.20

10 months ago

0.0.18

10 months ago

0.0.16

10 months ago

0.0.15

10 months ago

0.0.14

10 months ago

0.0.13

10 months ago

0.0.11

10 months ago

0.0.10

10 months ago

0.0.9

10 months ago

0.0.8

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago

0.1.0

10 months ago