0.0.30 • Published 2 years ago

utils-vue3 v0.0.30

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years 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

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

2 years ago

0.0.25

2 years ago

0.0.23

2 years ago

0.0.22

2 years ago

0.0.21

2 years ago

0.0.20

2 years ago

0.0.18

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago

0.1.0

2 years ago