mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 20:29:11 +00:00

For instance `deno bundle --outdir dist index.html` It will find scripts referenced in the html, bundle them, and then update the paths in index.html for the bundled assets. Right now it doesn't handle other assets (from `link` elements), but it could
35 lines
917 B
TypeScript
35 lines
917 B
TypeScript
import "./basic-bundle.asserts.ts";
|
|
|
|
import { assertFileContains } from "./assert-helpers.ts";
|
|
|
|
assertFileContains("./dist/index.html", /src="\.\/index-[^\.]+\.js"/);
|
|
assertFileContains(
|
|
"./dist/multiple-html.html",
|
|
/src="\.\/multiple-html-[^\.]+\.js"/,
|
|
);
|
|
|
|
const jsFiles: string[] = [];
|
|
Deno.readDirSync("./dist").forEach((entry) => {
|
|
if (entry.name.endsWith(".js")) {
|
|
jsFiles.push("./dist/" + entry.name);
|
|
}
|
|
});
|
|
|
|
if (jsFiles.length === 0) {
|
|
throw new Error("No .js files found");
|
|
}
|
|
|
|
const indexJsFile = jsFiles.find((file) => file.includes("index"));
|
|
const multipleHtmlJsFile = jsFiles.find((file) =>
|
|
file.includes("multiple-html")
|
|
);
|
|
|
|
if (!indexJsFile || !multipleHtmlJsFile) {
|
|
throw new Error("No index.js or multiple-html.js file found");
|
|
}
|
|
|
|
assertFileContains(indexJsFile, "Hello, world!");
|
|
assertFileContains(
|
|
multipleHtmlJsFile,
|
|
'document.body.insertAdjacentHTML("beforeend", "A");',
|
|
);
|