mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-14 12:56:37 +00:00
Make two builds of hassio (#6105)
This commit is contained in:
parent
7050d19be7
commit
e384f76ac1
@ -170,15 +170,12 @@ module.exports.config = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
hassio({ isProdBuild, latestBuild }) {
|
hassio({ isProdBuild, latestBuild }) {
|
||||||
if (latestBuild) {
|
|
||||||
throw new Error("Hass.io does not support latest build!");
|
|
||||||
}
|
|
||||||
return {
|
return {
|
||||||
entry: {
|
entry: {
|
||||||
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
|
entrypoint: path.resolve(paths.hassio_dir, "src/entrypoint.ts"),
|
||||||
},
|
},
|
||||||
outputPath: paths.hassio_output_root,
|
outputPath: outputPath(paths.hassio_output_root, latestBuild),
|
||||||
publicPath: paths.hassio_publicPath,
|
publicPath: publicPath(latestBuild, paths.hassio_publicPath),
|
||||||
isProdBuild,
|
isProdBuild,
|
||||||
latestBuild,
|
latestBuild,
|
||||||
dontHash: new Set(["entrypoint"]),
|
dontHash: new Set(["entrypoint"]),
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
const gulp = require("gulp");
|
const gulp = require("gulp");
|
||||||
|
const fs = require("fs");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
const env = require("../env");
|
const env = require("../env");
|
||||||
|
const paths = require("../paths");
|
||||||
|
|
||||||
require("./clean.js");
|
require("./clean.js");
|
||||||
require("./gen-icons-json.js");
|
require("./gen-icons-json.js");
|
||||||
@ -8,6 +11,24 @@ require("./webpack.js");
|
|||||||
require("./compress.js");
|
require("./compress.js");
|
||||||
require("./rollup.js");
|
require("./rollup.js");
|
||||||
|
|
||||||
|
async function writeEntrypointJS() {
|
||||||
|
// We ship two builds and we need to do feature detection on what version to load.
|
||||||
|
fs.mkdirSync(paths.hassio_output_root, { recursive: true });
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(paths.hassio_output_root, "entrypoint.js"),
|
||||||
|
`
|
||||||
|
try {
|
||||||
|
new Function("import('${paths.hassio_publicPath}/frontend_latest/entrypoint.js')")();
|
||||||
|
} catch (err) {
|
||||||
|
var el = document.createElement('script');
|
||||||
|
el.src = '${paths.hassio_publicPath}/frontend_es5/entrypoint.js';
|
||||||
|
document.body.appendChild(el);
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
{ encoding: "utf-8" }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"develop-hassio",
|
"develop-hassio",
|
||||||
gulp.series(
|
gulp.series(
|
||||||
@ -16,6 +37,7 @@ gulp.task(
|
|||||||
},
|
},
|
||||||
"clean-hassio",
|
"clean-hassio",
|
||||||
"gen-icons-json",
|
"gen-icons-json",
|
||||||
|
writeEntrypointJS,
|
||||||
env.useRollup() ? "rollup-watch-hassio" : "webpack-watch-hassio"
|
env.useRollup() ? "rollup-watch-hassio" : "webpack-watch-hassio"
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -29,6 +51,7 @@ gulp.task(
|
|||||||
"clean-hassio",
|
"clean-hassio",
|
||||||
"gen-icons-json",
|
"gen-icons-json",
|
||||||
env.useRollup() ? "rollup-prod-hassio" : "webpack-prod-hassio",
|
env.useRollup() ? "rollup-prod-hassio" : "webpack-prod-hassio",
|
||||||
|
writeEntrypointJS,
|
||||||
...// Don't compress running tests
|
...// Don't compress running tests
|
||||||
(env.isTest() ? [] : ["compress-hassio"])
|
(env.isTest() ? [] : ["compress-hassio"])
|
||||||
)
|
)
|
||||||
|
@ -92,11 +92,7 @@ gulp.task("rollup-watch-app", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("rollup-watch-hassio", () => {
|
gulp.task("rollup-watch-hassio", () => {
|
||||||
watchRollup(
|
watchRollup(rollupConfig.createHassioConfig, ["hassio/src/**"]);
|
||||||
// Force latestBuild = false for hassio config.
|
|
||||||
(conf) => rollupConfig.createHassioConfig({ ...conf, latestBuild: false }),
|
|
||||||
["hassio/src/**"]
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("rollup-dev-server-demo", () => {
|
gulp.task("rollup-dev-server-demo", () => {
|
||||||
@ -137,12 +133,7 @@ gulp.task(
|
|||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("rollup-prod-hassio", () =>
|
gulp.task("rollup-prod-hassio", () =>
|
||||||
buildRollup(
|
bothBuilds(rollupConfig.createHassioConfig, { isProdBuild: true })
|
||||||
rollupConfig.createHassioConfig({
|
|
||||||
isProdBuild: true,
|
|
||||||
latestBuild: false,
|
|
||||||
})
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
gulp.task("rollup-prod-gallery", () =>
|
gulp.task("rollup-prod-gallery", () =>
|
||||||
|
@ -129,7 +129,7 @@ gulp.task("webpack-watch-hassio", () => {
|
|||||||
webpack(
|
webpack(
|
||||||
createHassioConfig({
|
createHassioConfig({
|
||||||
isProdBuild: false,
|
isProdBuild: false,
|
||||||
latestBuild: false,
|
latestBuild: true,
|
||||||
})
|
})
|
||||||
).watch({}, handler());
|
).watch({}, handler());
|
||||||
});
|
});
|
||||||
@ -139,9 +139,8 @@ gulp.task(
|
|||||||
() =>
|
() =>
|
||||||
new Promise((resolve) =>
|
new Promise((resolve) =>
|
||||||
webpack(
|
webpack(
|
||||||
createHassioConfig({
|
bothBuilds(createHassioConfig, {
|
||||||
isProdBuild: true,
|
isProdBuild: true,
|
||||||
latestBuild: false,
|
|
||||||
}),
|
}),
|
||||||
handler(resolve)
|
handler(resolve)
|
||||||
)
|
)
|
||||||
|
@ -34,7 +34,7 @@ module.exports = {
|
|||||||
|
|
||||||
hassio_dir: path.resolve(__dirname, "../hassio"),
|
hassio_dir: path.resolve(__dirname, "../hassio"),
|
||||||
hassio_output_root: path.resolve(__dirname, "../hassio/build"),
|
hassio_output_root: path.resolve(__dirname, "../hassio/build"),
|
||||||
hassio_publicPath: "/api/hassio/app/",
|
hassio_publicPath: "/api/hassio/app",
|
||||||
|
|
||||||
translations_src: path.resolve(__dirname, "../src/translations"),
|
translations_src: path.resolve(__dirname, "../src/translations"),
|
||||||
};
|
};
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
const { createHassioConfig } = require("../build-scripts/webpack.js");
|
const { createHassioConfig } = require("../build-scripts/webpack.js");
|
||||||
const { isProdBuild } = require("../build-scripts/env.js");
|
const { isProdBuild, isStatsBuild } = require("../build-scripts/env.js");
|
||||||
|
|
||||||
// File just used for stats builds
|
|
||||||
|
|
||||||
const latestBuild = false;
|
|
||||||
|
|
||||||
module.exports = createHassioConfig({
|
module.exports = createHassioConfig({
|
||||||
isProdBuild: isProdBuild(),
|
isProdBuild: isProdBuild(),
|
||||||
latestBuild,
|
isStatsBuild: isStatsBuild(),
|
||||||
|
latestBuild: true,
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user