@neosjs/cli
Version:
Neos(奈欧斯)是一个帮助开发者快速地创建 Vue3 应用并自动配置项目编译的脚手架
1 lines • 882 B
JavaScript
;const fs=require("fs"),path=require("path"),{deepMerge}=require("./deepMerge"),{sortDependencies}=require("./sortDependencies");exports.renderTemplate=function(a,b){const c=fs.statSync(a);if(c.isDirectory()){if("node_modules"===path.basename(a))return;fs.mkdirSync(b,{recursive:!0});for(const c of fs.readdirSync(a))exports.renderTemplate(path.resolve(a,c),path.resolve(b,c));return}const d=path.basename(a);if("package.json"===d&&fs.existsSync(b)){const c=JSON.parse(fs.readFileSync(b,"utf8")),d=JSON.parse(fs.readFileSync(a,"utf8")),e=sortDependencies(deepMerge(c,d));return void fs.writeFileSync(b,JSON.stringify(e,null,2)+"\n")}if(d.startsWith("_")&&(b=path.resolve(path.dirname(b),d.replace(/^_/,"."))),"_gitignore"===d&&fs.existsSync(b)){const c=fs.readFileSync(b,"utf8"),d=fs.readFileSync(a,"utf8");return void fs.writeFileSync(b,c+"\n"+d)}fs.copyFileSync(a,b)};