@hyext/builder-neorn
Version:
neo react-native builder for hyext
33 lines (32 loc) • 1.73 kB
JavaScript
;
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;