Skip to content

Commit

Permalink
fix: manifest.json fixing
Browse files Browse the repository at this point in the history
  • Loading branch information
KonnorRogers committed Oct 8, 2020
1 parent 4873675 commit e8cd34d
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 15 deletions.
13 changes: 6 additions & 7 deletions src/emitHtmlFiles.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import fs from "fs";
// import path from "path"

import path from "path";
import { parseHashFileName } from "./utils";
import { baseFileName } from "./manifestUtils";

import { JSDOM } from "jsdom";

/**
Expand Down Expand Up @@ -50,16 +47,18 @@ export function rewriteScripts({ dom, manifest }) {
const scripts = domDocument.querySelectorAll("script");
const unhashedEntrypoints = Object.keys(manifest.entrypoints).map(
(fileName) => {
return parseHashFileName(manifest.entrypoints[fileName]["js"]);
if (fileName.ext === ".js") {
fileName.split("/").slice(1, -1).join("/");
return parseHashFileName(manifest.entrypoints[fileName]["js"]);
}
}
);

scripts.forEach((script) => {
if (!isEntrypoint({ entrypoints: unhashedEntrypoints, script })) {
return;
}

const baseFile = baseFileName(script.src);
const baseFile = path.parse(script.src).name;
script.src = manifest.entrypoints[baseFile].js;

const stylesheet = domDocument.createElement("link");
Expand Down
1 change: 1 addition & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ async function rollupBuild({ pluginOptions, inputOptions, outputOptions }) {
const manifest = {};

for (const chunkOrAsset of output) {
console.log(chunkOrAsset);
if (chunkOrAsset.isEntry || chunkOrAsset.type === "asset") {
addToManifest({ manifest, chunkOrAsset, assignTo: "entrypoints" });
continue;
Expand Down
28 changes: 20 additions & 8 deletions src/manifestUtils.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import path from "path";

import { parseHashFileName } from "./utils";
import path from "path";

export function addToManifest({
manifest,
Expand All @@ -12,7 +11,7 @@ export function addToManifest({
const asset = chunkOrAsset;
const assignment = assignTo;

manifest[parseHashFileName(fileName)] = path.join("/", fileName);
manifest[parseHashFileName(fileName)] = prependSlash(fileName);

manifest[assignment] = manifest[assignment] || {};

Expand All @@ -23,16 +22,29 @@ export function addToManifest({
});
}

export function baseFileName(fileName) {
return path.parse(parseHashFileName(fileName)).base.split(".")[0];
export function prependSlash(fileName) {
if (fileName[0] === "/") {
return fileName;
}

return "/" + fileName;
}

function assignAsset({ obj, asset, useFileType }) {
const { map, fileName } = asset;

let fileType = extType(fileName);
const baseName = baseFileName(fileName);
const adjustedFileName = path.join("/", fileName);

let baseName;

// Non js / js.map / css / css.map files retain their extension
if (fileType === null) {
baseName = parseHashFileName(fileName);
} else {
baseName = path.parse(parseHashFileName(fileName)).name.split(".")[0];
}

const adjustedFileName = prependSlash(fileName);

obj[baseName] = obj[baseName] || {};

Expand Down Expand Up @@ -61,5 +73,5 @@ function extType(fileName) {
return "js";
}

return "";
return null;
}

0 comments on commit e8cd34d

Please sign in to comment.