fix(core): update

This commit is contained in:
2022-03-18 15:46:11 +01:00
parent d6d1b063af
commit 1530f0ad74
9 changed files with 101 additions and 187 deletions

View File

@ -9,5 +9,5 @@ early.stop();
// lets make this usable programmatically
export * from './tsbundle.class.tsbundle.js';
export * from './mod_rollup/htmlhandler.js';
export * from './mod_html/index.js';
export { runCli };

43
ts/mod_html/index.ts Normal file
View File

@ -0,0 +1,43 @@
import * as plugins from './plugins.js';
import * as paths from '../paths.js';
export class HtmlHandler {
public defaultFromPath: string = plugins.path.join(paths.htmlDir, 'index.html');
public defaultToPath: string = plugins.path.join(paths.distServeDir, 'index.html');
public async checkIfExists() {
return plugins.smartfile.fs.fileExists(this.defaultFromPath);
}
// copies the html
public async copyHtml(fromArg: string = this.defaultFromPath, toArg: string = this.defaultToPath) {
if (!(await this.checkIfExists())) {
console.log(`${fromArg} replaces file at ${toArg}`);
}
fromArg = plugins.smartpath.transform.toAbsolute(fromArg, paths.cwd) as string;
toArg = plugins.smartpath.transform.toAbsolute(toArg, paths.cwd) as string;
await plugins.smartfile.fs.copy(fromArg, toArg);
console.log(`html copy replacement succeeded`);
}
// copies and minifies the html
public async minifyHtml(fromArg: string = this.defaultFromPath, toArg: string = this.defaultToPath) {
if (!(await this.checkIfExists())) {
console.log(`${fromArg} replaces file at ${toArg}`);
}
fromArg = plugins.smartpath.transform.toAbsolute(fromArg, paths.cwd) as string;
toArg = plugins.smartpath.transform.toAbsolute(toArg, paths.cwd) as string;
const fileString = plugins.smartfile.fs.toStringSync(fromArg);
const minifiedHtml = plugins.htmlMinifier.minify(fileString, {
minifyCSS: true,
minifyJS: true,
sortAttributes: true,
sortClassName: true,
removeAttributeQuotes: true,
collapseWhitespace: true,
collapseInlineTagWhitespace: true,
removeComments: true,
});
await plugins.smartfile.memory.toFs(minifiedHtml, toArg);
}
}

7
ts/mod_html/plugins.ts Normal file
View File

@ -0,0 +1,7 @@
export * from '../plugins.js';
import * as htmlMinifier from 'html-minifier';
export {
htmlMinifier
}

View File

@ -1,38 +0,0 @@
import * as plugins from './plugins.js';
import * as paths from '../paths.js';
export class HtmlHandler {
public sourceFilePath: string = plugins.path.join(paths.htmlDir, 'index.html');
public targetFilePath: string = plugins.path.join(paths.distServeDir, 'index.html');
public async checkIfExists() {
return plugins.smartfile.fs.fileExists(this.sourceFilePath);
}
// copies the html
public async copyHtml(targetPathArg = this.targetFilePath) {
if (!(await this.checkIfExists())) {
return;
}
await plugins.smartfile.fs.copy(this.sourceFilePath, targetPathArg);
}
// copies and minifies the html
public async minifyHtml(targetPathArg = this.targetFilePath) {
if (!(await this.checkIfExists())) {
return;
}
const fileString = plugins.smartfile.fs.toStringSync(this.sourceFilePath);
const minifiedHtml = plugins.htmlMinifier.minify(fileString, {
minifyCSS: true,
minifyJS: true,
sortAttributes: true,
sortClassName: true,
removeAttributeQuotes: true,
collapseWhitespace: true,
collapseInlineTagWhitespace: true,
removeComments: true,
});
plugins.smartfile.memory.toFsSync(minifiedHtml, targetPathArg);
}
}

View File

@ -10,8 +10,6 @@ import rollupSourceMaps from 'rollup-plugin-sourcemaps';
import { terser as rollupTerser } from 'rollup-plugin-terser';
import rollupTypescript from '@rollup/plugin-typescript';
import * as htmlMinifier from 'html-minifier';
export {
rollup,
rollupBabel,
@ -21,5 +19,4 @@ export {
rollupSourceMaps,
rollupTerser,
rollupTypescript,
htmlMinifier,
};

View File

@ -28,8 +28,9 @@ export class TsBundle {
from: fromArg,
to: toArg,
mode: argvArg && argvArg.production ? 'production' : 'test',
argv: argvArg ? argvArg : {
bundler: 'esbuild'
argv: {
bundler: 'esbuild',
...argvArg
}
}
const threadsimple = new plugins.smartspawn.ThreadSimple(

View File

@ -1,5 +1,6 @@
import * as plugins from './plugins.js';
import { TsBundle } from './tsbundle.class.tsbundle.js';
import { HtmlHandler } from './mod_html/index.js';
import { logger } from './tsbundle.logging.js';
export const runCli = async () => {
@ -12,6 +13,7 @@ export const runCli = async () => {
tsBundleCli.addCommand('element').subscribe(async (argvArg) => {
const tsbundle = new TsBundle();
const htmlHandler = new HtmlHandler();
// const htmlHandler = new HtmlHandler();
await tsbundle.build(
process.cwd(),
@ -23,6 +25,7 @@ export const runCli = async () => {
tsBundleCli.addCommand('npm').subscribe(async (argvArg) => {
const tsbundle = new TsBundle();
const htmlHandler = new HtmlHandler();
await tsbundle.build(
process.cwd(),
'./ts/index.ts',
@ -33,12 +36,14 @@ export const runCli = async () => {
tsBundleCli.addCommand('website').subscribe(async (argvArg) => {
const tsbundle = new TsBundle();
const htmlHandler = new HtmlHandler();
await tsbundle.build(
process.cwd(),
'./ts_web/index.ts',
'./dist_serve/bundle.js',
argvArg
);
await htmlHandler.minifyHtml('./html/index.html', './dist_serve/index.html')
});
tsBundleCli.startParse();