Compare commits

...

4 Commits

Author SHA1 Message Date
d5753019cf 1.0.94 2022-03-15 13:45:03 +01:00
a3ab55cbc6 fix(core): update 2022-03-15 13:45:03 +01:00
ae16fd8170 1.0.93 2022-03-15 13:01:19 +01:00
cf9ca73cd8 fix(core): update 2022-03-15 13:01:18 +01:00
7 changed files with 94 additions and 28 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@gitzone/tsbundle", "name": "@gitzone/tsbundle",
"version": "1.0.92", "version": "1.0.94",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@gitzone/tsbundle", "name": "@gitzone/tsbundle",
"version": "1.0.92", "version": "1.0.94",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@babel/core": "^7.17.5", "@babel/core": "^7.17.5",

View File

@ -1,6 +1,6 @@
{ {
"name": "@gitzone/tsbundle", "name": "@gitzone/tsbundle",
"version": "1.0.92", "version": "1.0.94",
"private": false, "private": false,
"description": "a bundler using rollup for painless bundling of web projects", "description": "a bundler using rollup for painless bundling of web projects",
"main": "dist_ts/index.js", "main": "dist_ts/index.js",

View File

@ -9,7 +9,8 @@ tap.test('should bundle test', async () => {
process.cwd() + '/test', process.cwd() + '/test',
'./ts_web/index.ts', './ts_web/index.ts',
'./dist_manual/test.js', './dist_manual/test.js',
'rollup' 'rollup',
{}
); );
}); });
@ -18,7 +19,9 @@ tap.test('should bundle production', async () => {
await tsbundleInstance.buildProduction( await tsbundleInstance.buildProduction(
process.cwd(), process.cwd(),
'./test/ts_web/index.ts', './test/ts_web/index.ts',
'./test/dist_manual/production.js' './test/dist_manual/production.js',
'rollup',
{}
); );
}); });

View File

@ -6,11 +6,15 @@ export class TsBundle {
cwdArg: string, cwdArg: string,
fromArg: string, fromArg: string,
toArg: string, toArg: string,
bundlerArg: 'rollup' | 'parcel' bundlerArg: 'rollup' | 'parcel',
argvArg: any
) { ) {
const done = plugins.smartpromise.defer(); const done = plugins.smartpromise.defer();
const threadsimple = new plugins.smartspawn.ThreadSimple( const threadsimple = new plugins.smartspawn.ThreadSimple(
plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), './tsbundle.class.tsbundleprocess.js'), plugins.path.join(
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
'./tsbundle.class.tsbundleprocess.js'
),
[], [],
{ {
env: { env: {
@ -20,6 +24,7 @@ export class TsBundle {
tsbundleFrom: fromArg, tsbundleFrom: fromArg,
tsbundleTo: toArg, tsbundleTo: toArg,
tsbundleBundler: bundlerArg, tsbundleBundler: bundlerArg,
tsbundleArgv: argvArg ? JSON.stringify(argvArg) : '{}',
}, },
} }
); );
@ -30,10 +35,19 @@ export class TsBundle {
await done.promise; 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 done = plugins.smartpromise.defer();
const threadsimple = new plugins.smartspawn.ThreadSimple( const threadsimple = new plugins.smartspawn.ThreadSimple(
plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), './tsbundle.class.tsbundleprocess.js'), plugins.path.join(
plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url),
'./tsbundle.class.tsbundleprocess.js'
),
[], [],
{ {
env: { env: {
@ -42,6 +56,8 @@ export class TsBundle {
tsbundleCwd: cwdArg, tsbundleCwd: cwdArg,
tsbundleFrom: fromArg, tsbundleFrom: fromArg,
tsbundleTo: toArg, tsbundleTo: toArg,
tsbundleBundler: bundlerArg,
tsbundleArgv: argvArg ? JSON.stringify(argvArg) : '{}',
}, },
} }
); );

View File

@ -7,7 +7,8 @@ export class TsBundleProcess {
*/ */
public getBaseOptions( public getBaseOptions(
fromArg: string = `ts_web/index.ts`, 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', `from: ${fromArg}`);
logger.log('info', `to: ${toArg}`); logger.log('info', `to: ${toArg}`);
@ -39,8 +40,26 @@ export class TsBundleProcess {
lib: ['dom'], lib: ['dom'],
noImplicitAny: false, noImplicitAny: false,
target: 'es2020', target: 'es2020',
module: 'es2020',
moduleResolution: 'node12',
allowSyntheticDefaultImports: true, allowSyntheticDefaultImports: true,
importsNotUsedAsValues: 'preserve', importsNotUsedAsValues: 'preserve',
...(argvArg && argvArg.skiplibcheck
? {
skipLibCheck: true,
}
: {}),
...(argvArg && argvArg.allowimplicitany
? {
noImplicitAny: false,
}
: {}),
...(argvArg && argvArg.commonjs
? {
module: 'commonjs',
moduleResolution: 'node',
}
: {}),
}), }),
(plugins.rollupJson as any)(), (plugins.rollupJson as any)(),
// Allow node_modules resolution, so you can use 'external' to control // Allow node_modules resolution, so you can use 'external' to control
@ -56,12 +75,20 @@ export class TsBundleProcess {
return baseOptions; return baseOptions;
} }
public getOptionsTest(fromArg: string, toArg: string): plugins.rollup.RollupOptions { public getOptionsTest(
return this.getBaseOptions(fromArg, toArg); fromArg: string,
toArg: string,
argvArg: any
): plugins.rollup.RollupOptions {
return this.getBaseOptions(fromArg, toArg, argvArg);
} }
public getOptionsProduction(fromArg: string, toArg: string): plugins.rollup.RollupOptions { public getOptionsProduction(
const productionOptions = this.getBaseOptions(fromArg, toArg); fromArg: string,
toArg: string,
argvArg: any
): plugins.rollup.RollupOptions {
const productionOptions = this.getBaseOptions(fromArg, toArg, argvArg);
productionOptions.plugins.push( productionOptions.plugins.push(
plugins.rollupTerser({ plugins.rollupTerser({
compress: true, compress: true,
@ -81,13 +108,14 @@ export class TsBundleProcess {
public async buildTest( public async buildTest(
fromArg: string, fromArg: string,
toArg: string, toArg: string,
bundlerArg: 'rollup' | 'parcel' = 'rollup' bundlerArg: 'rollup' | 'parcel' = 'rollup',
argvArg: any
) { ) {
// create a bundle // create a bundle
switch (bundlerArg) { switch (bundlerArg) {
case 'rollup': case 'rollup':
logger.log('info', `bundling for TEST!`); 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); const bundle = await plugins.rollup.rollup(buildOptions);
bundle.generate(buildOptions.output as plugins.rollup.OutputOptions); bundle.generate(buildOptions.output as plugins.rollup.OutputOptions);
await bundle.write(buildOptions.output as plugins.rollup.OutputOptions); await bundle.write(buildOptions.output as plugins.rollup.OutputOptions);
@ -107,10 +135,10 @@ export class TsBundleProcess {
/** /**
* creates a bundle for the production environment * 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 // create a bundle
logger.log('info', `bundling for PRODUCTION!`); 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); const bundle = await plugins.rollup.rollup(buildOptions);
bundle.generate(buildOptions.output as plugins.rollup.OutputOptions); bundle.generate(buildOptions.output as plugins.rollup.OutputOptions);
await bundle.write(buildOptions.output as plugins.rollup.OutputOptions); await bundle.write(buildOptions.output as plugins.rollup.OutputOptions);
@ -132,10 +160,15 @@ const run = async () => {
tsbundleProcessInstance.buildTest( tsbundleProcessInstance.buildTest(
process.env.tsbundleFrom, process.env.tsbundleFrom,
process.env.tsbundleTo, process.env.tsbundleTo,
process.env.tsbundleBundler as 'rollup' | 'parcel' process.env.tsbundleBundler as 'rollup' | 'parcel',
JSON.parse(process.env.tsbundleArgv)
); );
} else { } else {
tsbundleProcessInstance.buildProduction(process.env.tsbundleFrom, process.env.tsbundleTo); tsbundleProcessInstance.buildProduction(
process.env.tsbundleFrom,
process.env.tsbundleTo,
JSON.parse(process.env.tsbundleArgv)
);
} }
}; };

View File

@ -10,12 +10,12 @@ export const runCli = async () => {
// const htmlHandler = new HtmlHandler(); // const htmlHandler = new HtmlHandler();
switch (true) { switch (true) {
case argvArg.production || process.env.CI: 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(); // await htmlHandler.minifyHtml();
break; break;
case argvArg.test: case argvArg.test:
default: 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(); // await htmlHandler.copyHtml();
return; return;
} }
@ -29,7 +29,9 @@ export const runCli = async () => {
await tsbundle.buildProduction( await tsbundle.buildProduction(
process.cwd(), process.cwd(),
'./ts_web/index.ts', './ts_web/index.ts',
'./dist_bundle/bundle.js' './dist_bundle/bundle.js',
'rollup',
argvArg
); );
// await htmlHandler.minifyHtml(); // await htmlHandler.minifyHtml();
break; break;
@ -39,7 +41,8 @@ export const runCli = async () => {
process.cwd(), process.cwd(),
'./ts_web/index.ts', './ts_web/index.ts',
'./dist_bundle/bundle.js', './dist_bundle/bundle.js',
'rollup' 'rollup',
argvArg
); );
// await htmlHandler.copyHtml(); // await htmlHandler.copyHtml();
return; return;
@ -51,7 +54,13 @@ export const runCli = async () => {
// const htmlHandler = new HtmlHandler(); // const htmlHandler = new HtmlHandler();
switch (true) { switch (true) {
case argvArg.production || process.env.CI: 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(); // await htmlHandler.minifyHtml();
break; break;
case argvArg.test: case argvArg.test:
@ -60,7 +69,8 @@ export const runCli = async () => {
process.cwd(), process.cwd(),
'./ts/index.ts', './ts/index.ts',
'./dist_bundle/bundle.js', './dist_bundle/bundle.js',
'rollup' 'rollup',
argvArg
); );
// await htmlHandler.copyHtml(); // await htmlHandler.copyHtml();
return; return;
@ -75,7 +85,9 @@ export const runCli = async () => {
await tsbundle.buildProduction( await tsbundle.buildProduction(
process.cwd(), process.cwd(),
'./ts_web/index.ts', './ts_web/index.ts',
'./dist_serve/bundle.js' './dist_serve/bundle.js',
'rollup',
argvArg
); );
await htmlHandler.minifyHtml(); await htmlHandler.minifyHtml();
break; break;
@ -85,7 +97,8 @@ export const runCli = async () => {
process.cwd(), process.cwd(),
'./ts_web/index.ts', './ts_web/index.ts',
'./dist_serve/bundle.js', './dist_serve/bundle.js',
'rollup' 'rollup',
argvArg
); );
await htmlHandler.copyHtml(); await htmlHandler.copyHtml();
return; return;

View File

@ -4,5 +4,6 @@
"target": "ES2020", "target": "ES2020",
"module": "ES2020", "module": "ES2020",
"moduleResolution": "node12", "moduleResolution": "node12",
"esModuleInterop": true
} }
} }