import resolve from "@rollup/plugin-node-resolve"; import commonjs from "@rollup/plugin-commonjs"; import bundles from "./.dxx/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 + "/.dxx/" + value; path = path.split("\\").join("/"); let index = path.lastIndexOf("/"); mkdirsSync(path.substring(0, index)); fs.copyFile( __dirname + "/" + value, __dirname + "/.dxx/" + 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: `.dxx/${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: `.dxx/${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); // }, // }; // }) // );