UNPKG

@jpapini/vite-config

Version:
1 lines 5 kB
{"version":3,"file":"library-config.mjs","sources":["../../src/library-config.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { nodeExternals } from 'rollup-plugin-node-externals';\nimport { defineConfig } from 'vite';\nimport dts from 'vite-plugin-dts';\nimport tsconfigPaths from 'vite-tsconfig-paths';\n\nexport type ICreateLibraryViteConfigOptions = {\n rootDir: string;\n packageJson?: string;\n srcDir?: string;\n entryFile?: string;\n outDir?: string;\n publicDir?: string;\n include?: string | string[];\n exclude?: string | string[];\n};\n\nexport function createLibraryViteConfig(options: ICreateLibraryViteConfigOptions) {\n const rootDir = options.rootDir;\n const packageJson = options.packageJson ?? path.join(rootDir, 'package.json');\n const srcDir = options.srcDir ?? path.join(rootDir, 'src');\n const entryFile = options.entryFile ?? path.join(srcDir, 'index.ts');\n const outDir = options.outDir ?? path.join(rootDir, 'dist');\n const publicDir = options.publicDir ?? path.join(rootDir, 'public');\n const include = Array.isArray(options.include)\n ? options.include\n : options.include\n ? [options.include]\n : ['src/**/*.{js,jsx,ts,tsx}', 'src/**/*.d.ts', 'dts/**/*.d.ts'];\n const exclude = Array.isArray(options.exclude)\n ? options.exclude\n : options.exclude\n ? [options.exclude]\n : ['**/*.test.{js,jsx,ts,tsx}', '**/*.spec.{js,jsx,ts,tsx}'];\n\n const libraryConfig = defineConfig({\n root: rootDir,\n publicDir,\n build: {\n target: 'es2022',\n outDir,\n copyPublicDir: true,\n minify: false,\n emptyOutDir: false,\n sourcemap: true,\n lib: {\n entry: {\n index: entryFile,\n },\n formats: ['cjs', 'es'],\n fileName: (format, entryName) =>\n path.join(\n format === 'es' ? 'esm' : 'cjs',\n [entryName, format === 'es' ? 'mjs' : 'cjs'].join('.'),\n ),\n },\n rollupOptions: {\n output: {\n preserveModules: true,\n exports: 'named',\n hoistTransitiveImports: false,\n assetFileNames: 'assets/[name][extname]',\n },\n },\n },\n esbuild: {\n jsx: 'automatic',\n },\n plugins: [\n {\n ...nodeExternals({\n packagePath: packageJson,\n builtins: true,\n deps: true,\n devDeps: true,\n peerDeps: true,\n }),\n enforce: 'pre',\n },\n {\n ...tsconfigPaths({\n root: rootDir,\n }),\n enforce: 'pre',\n },\n {\n ...dts({\n root: rootDir,\n outDir: path.join(outDir, 'types'),\n include: include.map((glob) => path.join(rootDir, glob)),\n exclude,\n }),\n enforce: 'post',\n apply: 'build',\n },\n ],\n });\n\n return libraryConfig;\n}\n"],"names":[],"mappings":";;;;;AAkBO,SAAS,wBAAwB,SAA0C;AAC9E,QAAM,UAAU,QAAQ;AACxB,QAAM,cAAc,QAAQ,eAAe,KAAK,KAAK,SAAS,cAAc;AAC5E,QAAM,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,KAAK;AACzD,QAAM,YAAY,QAAQ,aAAa,KAAK,KAAK,QAAQ,UAAU;AACnE,QAAM,SAAS,QAAQ,UAAU,KAAK,KAAK,SAAS,MAAM;AAC1D,QAAM,YAAY,QAAQ,aAAa,KAAK,KAAK,SAAS,QAAQ;AAClE,QAAM,UAAU,MAAM,QAAQ,QAAQ,OAAO,IACvC,QAAQ,UACR,QAAQ,UACN,CAAC,QAAQ,OAAO,IAChB,CAAC,4BAA4B,iBAAiB,eAAe;AACrE,QAAM,UAAU,MAAM,QAAQ,QAAQ,OAAO,IACvC,QAAQ,UACR,QAAQ,UACN,CAAC,QAAQ,OAAO,IAChB,CAAC,6BAA6B,2BAA2B;AAEjE,QAAM,gBAAgB,aAAa;AAAA,IAC/B,MAAM;AAAA,IACN;AAAA,IACA,OAAO;AAAA,MACH,QAAQ;AAAA,MACR;AAAA,MACA,eAAe;AAAA,MACf,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW;AAAA,MACX,KAAK;AAAA,QACD,OAAO;AAAA,UACH,OAAO;AAAA,QACX;AAAA,QACA,SAAS,CAAC,OAAO,IAAI;AAAA,QACrB,UAAU,CAAC,QAAQ,cACf,KAAK;AAAA,UACD,WAAW,OAAO,QAAQ;AAAA,UAC1B,CAAC,WAAW,WAAW,OAAO,QAAQ,KAAK,EAAE,KAAK,GAAG;AAAA,QAAA;AAAA,MAEjE;AAAA,MACA,eAAe;AAAA,QACX,QAAQ;AAAA,UACJ,iBAAiB;AAAA,UACjB,SAAS;AAAA,UACT,wBAAwB;AAAA,UACxB,gBAAgB;AAAA,QAAA;AAAA,MACpB;AAAA,IAER;AAAA,IACA,SAAS;AAAA,MACL,KAAK;AAAA,IACT;AAAA,IACA,SAAS;AAAA,MACL;AAAA,QACI,GAAG,cAAc;AAAA,UACb,aAAa;AAAA,UACb,UAAU;AAAA,UACV,MAAM;AAAA,UACN,SAAS;AAAA,UACT,UAAU;AAAA,QAAA,CACb;AAAA,QACD,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,GAAG,cAAc;AAAA,UACb,MAAM;AAAA,QAAA,CACT;AAAA,QACD,SAAS;AAAA,MACb;AAAA,MACA;AAAA,QACI,GAAG,IAAI;AAAA,UACH,MAAM;AAAA,UACN,QAAQ,KAAK,KAAK,QAAQ,OAAO;AAAA,UACjC,SAAS,QAAQ,IAAI,CAAC,SAAS,KAAK,KAAK,SAAS,IAAI,CAAC;AAAA,UACvD;AAAA,QAAA,CACH;AAAA,QACD,SAAS;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IACX;AAAA,EACJ,CACH;AAEM,SAAA;AACX;"}