mirror of
				https://github.com/home-assistant/frontend.git
				synced 2025-11-04 00:19:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Run demo develop mode
 | 
						|
const gulp = require("gulp");
 | 
						|
const fs = require("fs");
 | 
						|
const path = require("path");
 | 
						|
 | 
						|
const env = require("../env");
 | 
						|
const paths = require("../paths");
 | 
						|
 | 
						|
require("./clean.js");
 | 
						|
require("./translations.js");
 | 
						|
require("./gen-icons-json.js");
 | 
						|
require("./gather-static.js");
 | 
						|
require("./webpack.js");
 | 
						|
require("./service-worker.js");
 | 
						|
require("./entry-html.js");
 | 
						|
require("./rollup.js");
 | 
						|
 | 
						|
gulp.task("gather-gallery-demos", async function gatherDemos() {
 | 
						|
  const files = await fs.promises.readdir(
 | 
						|
    path.resolve(paths.gallery_dir, "src/demos")
 | 
						|
  );
 | 
						|
 | 
						|
  let content = "export const DEMOS = {\n";
 | 
						|
 | 
						|
  for (const file of files) {
 | 
						|
    const demoId = path.basename(file, ".ts");
 | 
						|
    const demoPath = "../src/demos/" + demoId;
 | 
						|
    content += `  "${demoId}": () => import("${demoPath}"),\n`;
 | 
						|
  }
 | 
						|
 | 
						|
  content += "};";
 | 
						|
 | 
						|
  const galleryBuild = path.resolve(paths.gallery_dir, "build");
 | 
						|
 | 
						|
  fs.mkdirSync(galleryBuild, { recursive: true });
 | 
						|
  fs.writeFileSync(
 | 
						|
    path.resolve(galleryBuild, "import-demos.ts"),
 | 
						|
    content,
 | 
						|
    "utf-8"
 | 
						|
  );
 | 
						|
});
 | 
						|
 | 
						|
gulp.task(
 | 
						|
  "develop-gallery",
 | 
						|
  gulp.series(
 | 
						|
    async function setEnv() {
 | 
						|
      process.env.NODE_ENV = "development";
 | 
						|
    },
 | 
						|
    "clean-gallery",
 | 
						|
    "translations-enable-merge-backend",
 | 
						|
    gulp.parallel(
 | 
						|
      "gen-icons-json",
 | 
						|
      "build-translations",
 | 
						|
      "gather-gallery-demos"
 | 
						|
    ),
 | 
						|
    "copy-static-gallery",
 | 
						|
    "gen-index-gallery-dev",
 | 
						|
    env.useRollup() ? "rollup-dev-server-gallery" : "webpack-dev-server-gallery"
 | 
						|
  )
 | 
						|
);
 | 
						|
 | 
						|
gulp.task(
 | 
						|
  "build-gallery",
 | 
						|
  gulp.series(
 | 
						|
    async function setEnv() {
 | 
						|
      process.env.NODE_ENV = "production";
 | 
						|
    },
 | 
						|
    "clean-gallery",
 | 
						|
    "translations-enable-merge-backend",
 | 
						|
    gulp.parallel(
 | 
						|
      "gen-icons-json",
 | 
						|
      "build-translations",
 | 
						|
      "gather-gallery-demos"
 | 
						|
    ),
 | 
						|
    "copy-static-gallery",
 | 
						|
    env.useRollup() ? "rollup-prod-gallery" : "webpack-prod-gallery",
 | 
						|
    "gen-index-gallery-prod"
 | 
						|
  )
 | 
						|
);
 |