diff --git a/ts/tsbundle.class.tsbundle.ts b/ts/tsbundle.class.tsbundle.ts index 91ec6e6..c0b801b 100644 --- a/ts/tsbundle.class.tsbundle.ts +++ b/ts/tsbundle.class.tsbundle.ts @@ -2,11 +2,12 @@ import * as plugins from './tsbundle.plugins.js'; import { logger } from './tsbundle.logging.js'; export class TsBundle { - public async buildTest( + public async buildTest ( cwdArg: string, fromArg: string, toArg: string, - bundlerArg: 'rollup' | 'parcel' + bundlerArg: 'rollup' | 'parcel', + argvArg: any ) { const done = plugins.smartpromise.defer(); const threadsimple = new plugins.smartspawn.ThreadSimple( @@ -20,6 +21,7 @@ export class TsBundle { tsbundleFrom: fromArg, tsbundleTo: toArg, tsbundleBundler: bundlerArg, + tsbundleArgv: argvArg, }, } ); @@ -30,7 +32,13 @@ export class TsBundle { await done.promise; } - public async buildProduction(cwdArg: string, fromArg: string, toArg: string) { + public async buildProduction ( + cwdArg: string, + fromArg: string, + toArg: string, + bundlerArg: 'rollup' | 'parcel', + argvArg: any + ) { const done = plugins.smartpromise.defer(); const threadsimple = new plugins.smartspawn.ThreadSimple( plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), './tsbundle.class.tsbundleprocess.js'), @@ -42,6 +50,8 @@ export class TsBundle { tsbundleCwd: cwdArg, tsbundleFrom: fromArg, tsbundleTo: toArg, + tsbundleBundler: bundlerArg, + tsbundleArgv: argvArg, }, } ); diff --git a/ts/tsbundle.class.tsbundleprocess.ts b/ts/tsbundle.class.tsbundleprocess.ts index b92454c..8b39987 100644 --- a/ts/tsbundle.class.tsbundleprocess.ts +++ b/ts/tsbundle.class.tsbundleprocess.ts @@ -7,7 +7,8 @@ export class TsBundleProcess { */ public getBaseOptions( fromArg: string = `ts_web/index.ts`, - toArg: string = 'dist_bundle/bundle.js' + toArg: string = 'dist_bundle/bundle.js', + argvArg: any ) { logger.log('info', `from: ${fromArg}`); logger.log('info', `to: ${toArg}`); @@ -39,8 +40,20 @@ export class TsBundleProcess { lib: ['dom'], noImplicitAny: false, target: 'es2020', + module: 'es2020', + moduleResolution: 'node12', allowSyntheticDefaultImports: true, importsNotUsedAsValues: 'preserve', + ...argvArg && argvArg.skiplibcheck ? { + skipLibCheck: true + } : {}, + ...argvArg && argvArg.allowimplicitany ? { + noImplicitAny: false + } : {}, + ...argvArg && argvArg.commonjs ? { + module: 'commonjs', + moduleResolution: 'node', + } : {}, }), (plugins.rollupJson as any)(), // Allow node_modules resolution, so you can use 'external' to control @@ -56,12 +69,12 @@ export class TsBundleProcess { return baseOptions; } - public getOptionsTest(fromArg: string, toArg: string): plugins.rollup.RollupOptions { - return this.getBaseOptions(fromArg, toArg); + public getOptionsTest(fromArg: string, toArg: string, argvArg: any): plugins.rollup.RollupOptions { + return this.getBaseOptions(fromArg, toArg, argvArg); } - public getOptionsProduction(fromArg: string, toArg: string): plugins.rollup.RollupOptions { - const productionOptions = this.getBaseOptions(fromArg, toArg); + public getOptionsProduction(fromArg: string, toArg: string, argvArg: any): plugins.rollup.RollupOptions { + const productionOptions = this.getBaseOptions(fromArg, toArg, argvArg); productionOptions.plugins.push( plugins.rollupTerser({ compress: true, @@ -81,13 +94,14 @@ export class TsBundleProcess { public async buildTest( fromArg: string, toArg: string, - bundlerArg: 'rollup' | 'parcel' = 'rollup' + bundlerArg: 'rollup' | 'parcel' = 'rollup', + argvArg: any ) { // create a bundle switch (bundlerArg) { case 'rollup': logger.log('info', `bundling for TEST!`); - const buildOptions = this.getOptionsTest(fromArg, toArg); + const buildOptions = this.getOptionsTest(fromArg, toArg, argvArg); const bundle = await plugins.rollup.rollup(buildOptions); bundle.generate(buildOptions.output as plugins.rollup.OutputOptions); await bundle.write(buildOptions.output as plugins.rollup.OutputOptions); @@ -107,10 +121,10 @@ export class TsBundleProcess { /** * creates a bundle for the production environment */ - public async buildProduction(fromArg: string, toArg: string) { + public async buildProduction(fromArg: string, toArg: string, argvArg: any) { // create a bundle logger.log('info', `bundling for PRODUCTION!`); - const buildOptions = this.getOptionsProduction(fromArg, toArg); + const buildOptions = this.getOptionsProduction(fromArg, toArg, argvArg); const bundle = await plugins.rollup.rollup(buildOptions); bundle.generate(buildOptions.output as plugins.rollup.OutputOptions); await bundle.write(buildOptions.output as plugins.rollup.OutputOptions); @@ -132,10 +146,11 @@ const run = async () => { tsbundleProcessInstance.buildTest( process.env.tsbundleFrom, process.env.tsbundleTo, - process.env.tsbundleBundler as 'rollup' | 'parcel' + process.env.tsbundleBundler as 'rollup' | 'parcel', + process.env.tsbundleArgv ); } else { - tsbundleProcessInstance.buildProduction(process.env.tsbundleFrom, process.env.tsbundleTo); + tsbundleProcessInstance.buildProduction(process.env.tsbundleFrom, process.env.tsbundleTo, process.env.tsbundleArgv); } }; diff --git a/ts/tsbundle.cli.ts b/ts/tsbundle.cli.ts index b5cd4dd..8924f15 100644 --- a/ts/tsbundle.cli.ts +++ b/ts/tsbundle.cli.ts @@ -10,12 +10,12 @@ export const runCli = async () => { // const htmlHandler = new HtmlHandler(); switch (true) { case argvArg.production || process.env.CI: - await tsbundle.buildProduction(process.cwd(), argvArg.from, argvArg.to); + await tsbundle.buildProduction(process.cwd(), argvArg.from, argvArg.to, 'rollup', argvArg); // await htmlHandler.minifyHtml(); break; case argvArg.test: default: - await tsbundle.buildTest(process.cwd(), argvArg.from, argvArg.to, 'rollup'); + await tsbundle.buildTest(process.cwd(), argvArg.from, argvArg.to, 'rollup', argvArg); // await htmlHandler.copyHtml(); return; } @@ -29,7 +29,9 @@ export const runCli = async () => { await tsbundle.buildProduction( process.cwd(), './ts_web/index.ts', - './dist_bundle/bundle.js' + './dist_bundle/bundle.js', + 'rollup', + argvArg ); // await htmlHandler.minifyHtml(); break; @@ -39,7 +41,8 @@ export const runCli = async () => { process.cwd(), './ts_web/index.ts', './dist_bundle/bundle.js', - 'rollup' + 'rollup', + argvArg ); // await htmlHandler.copyHtml(); return; @@ -51,7 +54,13 @@ export const runCli = async () => { // const htmlHandler = new HtmlHandler(); switch (true) { case argvArg.production || process.env.CI: - await tsbundle.buildProduction(process.cwd(), './ts/index.ts', './dist_bundle/bundle.js'); + await tsbundle.buildProduction( + process.cwd(), + './ts/index.ts', + './dist_bundle/bundle.js', + 'rollup', + argvArg + ); // await htmlHandler.minifyHtml(); break; case argvArg.test: @@ -60,7 +69,8 @@ export const runCli = async () => { process.cwd(), './ts/index.ts', './dist_bundle/bundle.js', - 'rollup' + 'rollup', + argvArg ); // await htmlHandler.copyHtml(); return; @@ -75,7 +85,9 @@ export const runCli = async () => { await tsbundle.buildProduction( process.cwd(), './ts_web/index.ts', - './dist_serve/bundle.js' + './dist_serve/bundle.js', + 'rollup', + argvArg ); await htmlHandler.minifyHtml(); break; @@ -85,7 +97,8 @@ export const runCli = async () => { process.cwd(), './ts_web/index.ts', './dist_serve/bundle.js', - 'rollup' + 'rollup', + argvArg ); await htmlHandler.copyHtml(); return; diff --git a/tsconfig.json b/tsconfig.json index 5702e26..520a517 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,5 +4,6 @@ "target": "ES2020", "module": "ES2020", "moduleResolution": "node12", + "esModuleInterop": true } } \ No newline at end of file