Skip to content

Commit

Permalink
build(core): use vite-plugin-nano to min and add banner
Browse files Browse the repository at this point in the history
  • Loading branch information
YMC-GitHub committed Mar 26, 2024
1 parent 6e04f36 commit 1523bf0
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 43 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
"vite-plugin-banner": "^0.7.1",
"vite-plugin-dts": "^3.7.3",
"vite-plugin-eslint": "^1.8.1",
"vite-plugin-nano": "^1.0.2",
"vitest": "^1.4.0"
}
}
9 changes: 9 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

85 changes: 42 additions & 43 deletions vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ import { spawn } from 'node:child_process'
import { builtinModules } from 'node:module'
import { defineConfig } from 'vite'
// import plainText from 'vite-plugin-plain-text';
import banner from 'vite-plugin-banner'
// import banner from 'vite-plugin-banner'
import eslint from "vite-plugin-eslint";
import nanoViteMiniDist from "vite-plugin-nano"

import pkg from './package.json'
// import fg from 'fast-glob';

// prefer-const
const isDevEnv = process.argv.slice(2).includes('--watch')
const jsfileOutDir: string = "dist"
Expand All @@ -25,8 +25,7 @@ const jsfileSrcDir='lib'
// console.log(tsentryfiles)
// const {log}=console



let bannerText = `/**\n * name: ${pkg.name}\n * version: v${pkg.version}\n * description: ${pkg.description}\n * author: ${pkg.author}\n * homepage: ${pkg.homepage}\n */`
let plugins =[
isDevEnv?eslint({ lintOnStart: true, cache: false }):undefined,
// allow all *.md files can be import as es module
Expand All @@ -35,53 +34,17 @@ let plugins =[
name: 'generate-types',
async closeBundle() {
if (process.env.NODE_ENV === 'test') return

removeTypes()
await generateTypes()
moveTypesToDist()
removeTypes()
},
},
banner(
`/**\n * name: ${pkg.name}\n * version: v${pkg.version}\n * description: ${pkg.description}\n * author: ${pkg.author}\n * homepage: ${pkg.homepage}\n */`
)
// banner(bannerText),
nanoViteMiniDist({banner:bannerText})
]
// console.log(stdUmdName(pkg.name))

export default defineConfig({
build: {
// terserOptions: {
// compress: {
// drop_console: true,
// drop_debugger: true,
// },
// },
// minify: !isDevEnv?'terser':false,
minify:false,
outDir: jsfileOutDir,
emptyOutDir: !isDevEnv,
// target: 'node14',
lib: {
entry: [jsfileSrcDir,'main.ts'].join("/"),
name: stdUmdName(pkg.name),
formats: ['cjs', 'es','umd'],
// fileName: format => format === 'es' ? '[name].mjs' : '[name].js',
fileName: format => format === 'es' ? '[name].js' : format === 'umd' ?'[name].umd.cjs':'[name].cjs',
},
rollupOptions: {
external: [
'vite',
...builtinModules,
...builtinModules.map(m => `node:${m}`),
...Object.keys('dependencies' in pkg ? pkg.dependencies as object : {}),
],
output: {
exports: 'named',
},
},
},
plugins: plugins.filter(v=>v),
})

function removeTypes() {
console.log(`[types] declaration remove`)
Expand Down Expand Up @@ -121,4 +84,40 @@ function moveTypesToDist() {

function stdUmdName(name:string){
return name.replace(/'@.*\/'/ig,'').replace(/-/ig,'')
}
}


export default defineConfig({
build: {
// terserOptions: {
// compress: {
// drop_console: true,
// drop_debugger: true,
// },
// },
// minify: !isDevEnv?'terser':false,
minify:false,
outDir: jsfileOutDir,
emptyOutDir: !isDevEnv,
// target: 'node14',
lib: {
entry: [jsfileSrcDir,'main.ts'].join("/"),
name: stdUmdName(pkg.name),
formats: ['cjs', 'es','umd'],
// fileName: format => format === 'es' ? '[name].mjs' : '[name].js',
fileName: format => format === 'es' ? '[name].js' : format === 'umd' ?'[name].umd.cjs':'[name].cjs',
},
rollupOptions: {
external: [
'vite',
...builtinModules,
...builtinModules.map(m => `node:${m}`),
...Object.keys('dependencies' in pkg ? pkg.dependencies as object : {}),
],
output: {
exports: 'named',
},
},
},
plugins: plugins.filter(v=>v),
})

0 comments on commit 1523bf0

Please sign in to comment.