tokenizr
Version:
String Tokenization Library for JavaScript
48 lines (43 loc) • 1.63 kB
text/typescript
/*
** Tokenizr -- String Tokenization Library
** Copyright (c) 2015-2025 Dr. Ralf S. Engelschall <rse@engelschall.com>
** Licensed under MIT license <https://spdx.org/licenses/MIT>
*/
import fs from "node:fs"
import * as Vite from "vite"
import { tscPlugin } from "@wroud/vite-plugin-tsc"
import { viteSingleFile } from "vite-plugin-singlefile"
import { nodePolyfills } from "vite-plugin-node-polyfills"
const formats = process.env.VITE_BUILD_FORMATS ?? "esm"
export default Vite.defineConfig(({ command, mode }) => ({
logLevel: "info",
appType: "custom",
base: "",
root: "",
plugins: [
tscPlugin({
tscArgs: [ "--project", "etc/tsc.json" ],
packageManager: "npx",
prebuild: true
}),
...(formats === "umd" ? [ nodePolyfills() ] : []),
viteSingleFile()
],
build: {
lib: {
entry: "dst/tokenizr.js",
formats: formats.split(","),
name: "Tokenizr",
fileName: (format) => `tokenizr.${format === "es" ? "esm" : format}.js`
},
target: "es2022",
outDir: "dst",
assetsDir: "",
emptyOutDir: (mode === "production") && formats !== "umd",
chunkSizeWarningLimit: 5000,
assetsInlineLimit: 0,
sourcemap: (mode === "development"),
minify: (mode === "production") && formats === "umd",
reportCompressedSize: (mode === "production")
}
}))