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 let index = path.lastIndexOf('/') mkdirsSync(path.substring(0, index)) fs.copyFile(__dirname + '/' + value, __dirname + '/build/' + value, 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.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('.ts', '')) .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('.ts', '')) .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) } } }))