UNPKG

@jpapini/vite-config

Version:
82 lines (81 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const path = require("node:path"); const rollupPluginNodeExternals = require("rollup-plugin-node-externals"); const vite = require("vite"); const dts = require("vite-plugin-dts"); const tsconfigPaths = require("vite-tsconfig-paths"); function createLibraryViteConfig(options) { const rootDir = options.rootDir; const packageJson = options.packageJson ?? path.join(rootDir, "package.json"); const srcDir = options.srcDir ?? path.join(rootDir, "src"); const entryFile = options.entryFile ?? path.join(srcDir, "index.ts"); const outDir = options.outDir ?? path.join(rootDir, "dist"); const publicDir = options.publicDir ?? path.join(rootDir, "public"); const include = Array.isArray(options.include) ? options.include : options.include ? [options.include] : ["src/**/*.{js,jsx,ts,tsx}", "src/**/*.d.ts", "dts/**/*.d.ts"]; const exclude = Array.isArray(options.exclude) ? options.exclude : options.exclude ? [options.exclude] : ["**/*.test.{js,jsx,ts,tsx}", "**/*.spec.{js,jsx,ts,tsx}"]; const libraryConfig = vite.defineConfig({ root: rootDir, publicDir, build: { target: "es2022", outDir, copyPublicDir: true, minify: false, emptyOutDir: false, sourcemap: true, lib: { entry: { index: entryFile }, formats: ["cjs", "es"], fileName: (format, entryName) => path.join( format === "es" ? "esm" : "cjs", [entryName, format === "es" ? "mjs" : "cjs"].join(".") ) }, rollupOptions: { output: { preserveModules: true, exports: "named", hoistTransitiveImports: false, assetFileNames: "assets/[name][extname]" } } }, esbuild: { jsx: "automatic" }, plugins: [ { ...rollupPluginNodeExternals.nodeExternals({ packagePath: packageJson, builtins: true, deps: true, devDeps: true, peerDeps: true }), enforce: "pre" }, { ...tsconfigPaths({ root: rootDir }), enforce: "pre" }, { ...dts({ root: rootDir, outDir: path.join(outDir, "types"), include: include.map((glob) => path.join(rootDir, glob)), exclude }), enforce: "post", apply: "build" } ] }); return libraryConfig; } exports.createLibraryViteConfig = createLibraryViteConfig; //# sourceMappingURL=library-config.cjs.map