UNPKG

@hyext/builder-neorn

Version:

neo react-native builder for hyext

33 lines (32 loc) 1.73 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_extra_1 = __importDefault(require("fs-extra")); const path_1 = __importDefault(require("path")); const handlebars_1 = __importDefault(require("handlebars")); function generateFiles({ projectRoot, buildTypes }) { buildTypes.forEach(({ extType }) => { const appPath = path_1.default.resolve(projectRoot, extType, 'App.js'); const entryPath = path_1.default.resolve(projectRoot, `${extType}.js`); const assetsPath = path_1.default.resolve(projectRoot, 'assets/logo.png'); // 创建 app.js const appTemplatePath = path_1.default.resolve(__dirname, '../template/App.js'); const appTemplate = handlebars_1.default.compile(fs_extra_1.default.readFileSync(appTemplatePath).toString()); // 如果目录不存在, outputFileSync 会自动创建 fs_extra_1.default.outputFileSync(appPath, appTemplate({ // 让开发者自己 import SDK 吧 // SDK_NAME: getSDKNameByExtType(extType) })); // 创建 [extType].js const entryTemplatePath = path_1.default.resolve(__dirname, '../template/index.js'); const entryTemplate = handlebars_1.default.compile(fs_extra_1.default.readFileSync(entryTemplatePath).toString()); fs_extra_1.default.outputFileSync(entryPath, entryTemplate({ EXT_TYPE: extType, })); // copy assets fs_extra_1.default.copySync(path_1.default.resolve(__dirname, '../template/logo.png'), assetsPath); }); } exports.default = generateFiles;