import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import bundles from "./build/index"; import fs from "fs"; import path from "path"; import buble from "@rollup/plugin-buble"; import json from "@rollup/plugin-json"; import image from "@rollup/plugin-image"; function searchImages(dir, images) { const files = fs.readdirSync(dir); files.forEach((item, index) => { var fullPath = path.join(dir, item); const stat = fs.statSync(fullPath); if (stat.isDirectory()) { searchImages(path.join(dir, item), images); } else { if (fullPath.endsWith(".png")) { images.push(fullPath); } } }); return images; } const allImages = []; searchImages("src", allImages); function mkdirsSync(dirname) { if (fs.existsSync(dirname)) { return true; } else { if (mkdirsSync(path.dirname(dirname))) { fs.mkdirSync(dirname); return true; } } } allImages.forEach((value) => { let path = __dirname + "/build/" + value; path = path.split("\\").join("/"); let index = path.lastIndexOf("/"); mkdirsSync(path.substring(0, index)); fs.copyFile( __dirname + "/" + value, __dirname + "/build/" + value, (error) => { if (error) console.log(error); } ); }); function readDirs(dirPath, files) { if (fs.statSync(dirPath).isDirectory()) { fs.readdirSync(dirPath).forEach((e) => { readDirs(path.join(dirPath, e), files); }); } else { for (let bundle of bundles) { if (dirPath.replace("\\", "/").match(new RegExp(`^${bundle}`))) { files.push(dirPath); } } } } const dirs = fs.readdirSync(".").filter((e) => { for (let bundle of bundles) { if (bundle.match(new RegExp(`^${e}/`))) { return true; } } return false; }); const allFiles = []; dirs.forEach((e) => { readDirs(e, allFiles); }); export default allFiles .map((e) => e.replace(/\.tsx?$/, "")) .map((bundle) => { return { input: `build/${bundle}.js`, output: { format: "cjs", file: `bundle/${bundle}.js`, sourcemap: true, }, plugins: [ resolve({ mainFields: ["jsnext"] }), commonjs(), json(), image(), ], external: ["reflect-metadata", "doric"], onwarn: function (warning) { if (warning.code === "THIS_IS_UNDEFINED") { return; } console.warn(warning.message); }, }; }) .concat( allFiles .map((e) => e.replace(/\.tsx?$/, "")) .map((bundle) => { return { input: `build/${bundle}.js`, output: { format: "cjs", file: `bundle/${bundle}.es5.js`, sourcemap: true, }, plugins: [ resolve({ mainFields: ["jsnext"] }), commonjs(), json(), buble({ transforms: { dangerousForOf: true, generator: false, }, }), image(), ], external: ["reflect-metadata", "doric"], onwarn: function (warning) { if (warning.code === "THIS_IS_UNDEFINED") { return; } console.warn(warning.message); }, }; }) );