/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/fw-new-app@1.1.3/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
#!/usr/bin/env node
"use strict";var chalk=require("chalk"),ora=require("ora"),semver=require("semver"),spinner=ora(),currentNodeVersion=process.versions.node;semver.lt(currentNodeVersion,"4.0.0")&&(spinner.fail("你当前node版本为 "+chalk.red(currentNodeVersion)+"。\n  该项目要求node版本必须 "+chalk.cyan(">= 4.0.0")+" 。\n  请升级你的node！"),process.exit(1));var projectName,projectCustom,commander=require("commander"),inquirer=require("inquirer"),fs=require("fs-extra"),path=require("path"),execSync=require("child_process").execSync,spawn=require("cross-spawn"),appUpgrade=require("./upgrade"),createPage=require("./page"),ownPath=__dirname,oldPath=process.cwd(),program=commander.version(require("./package.json").version).arguments("<project-directory>").usage(chalk.green("<project-directory>")+" [options]").option("-u, --upgrade","升级项目到fw-new最新构建版本").option("-p --page","创建页面模板").action((function(e){projectName=e})).parse(process.argv);function createApp(e){var r=path.resolve(e),n=path.basename(r),o=[];switch(projectCustom.libs){case 1:o.push("jquery");break;case 2:o.push("react","react-dom");break;case 3:o.push("jquery","react","react-dom")}projectCustom.enableSW&&o.push("utils/serviceWorker/register"),o.push("normalize.css","./static/css/vendor.scss"),fs.ensureDirSync(e),process.chdir(r),run(r,n)}function shouldUseYarn(){try{return execSync("yarn --version",{stdio:"ignore"}),!0}catch(e){return!1}}function install(e){var r=shouldUseYarn()?"yarn":"npm",n=["install"],o=spawn(r,n,{stdio:"inherit"});o.on("close",(function(o){e(o,r,n)})),process.on("exit",(function(){o.kill()}))}function run(e,r){var n=path.join(ownPath,"template");if(fs.existsSync(n)){fs.copySync(n,e);var o=require(path.resolve(e,"package.json"));o.name=r,o.author=projectCustom.author,o.version=projectCustom.version,o.vendor=projectCustom.pkgVendor,fs.writeFileSync(path.join(e,"package.json"),JSON.stringify(o,null,2))}fs.move(path.join(e,".gitignore"),path.join(e,".gitignore"),(function(r){if(r){if("EEXIST"!==r.code)throw r;var n=fs.readFileSync(path.join(e,"gitignore"));fs.appendFileSync(path.join(e,".gitignore"),n),fs.unlinkSync(path.join(e,"gitignore"))}})),projectCustom.install?install((function(n,o,a){0===n?(console.log(),spinner.succeed("项目 "+chalk.green(r)+" 已创建成功，路径："+chalk.green(e))):console.error("`"+o+" "+a.join(" ")+"` 运行失败")})):spinner.succeed("项目创建成功！但是你需要手动安装依赖。\n运行\n"+chalk.green("cd "+r)+"\n"+chalk.green((shouldUseYarn()?"yarn":"npm")+" install"))}function isSafeToCreateProjectIn(e){var r=[".DS_Store","Thumbs.db",".git",".gitignore",".idea","README.md","LICENSE"];return!fs.existsSync(e)||fs.readdirSync(e).every((function(e){return r.indexOf(e)>=0}))}void 0===projectName&&(spinner.fail("请指定要"+(program.upgrade?"升级":"创建")+"的项目目录名:"),console.log("  "+chalk.cyan(program.name())+chalk.green(" <项目目录>")),console.log(),console.log("例如:"),console.log("  "+chalk.cyan(program.name())+chalk.green(" my-react-app")),console.log(),process.exit(1)),program.upgrade?appUpgrade(projectName):program.page?createPage(projectName):isSafeToCreateProjectIn(path.resolve(projectName))?inquirer.prompt([{name:"version",type:"input",message:"请输入项目版本号:",default:"1.0.0",validate:function(e){return!!semver.valid(e)||chalk.cyan(e)+" 不是一个有效的版本号"}}]).then((function(e){return inquirer.prompt([{name:"author",type:"input",message:"请输入项目所属者（组织）的名字或邮箱:",validate:function(e){return!!e||"该字段不能为空"}},{name:"install",type:"confirm",message:"是否自动下载依赖？",default:!1}]).then((function(r){return Object.assign(e,r)}))})).then((function(e){projectCustom=e,createApp(projectName)})):(spinner.fail("该文件夹（"+chalk.green(projectName)+"）已经存在，且存在导致冲突的文件."),console.log("  请使用一个新的文件夹名，或者使用升级命令将项目构建方式升级到最新版本："),console.log(),console.log("   "+chalk.cyan(program.name())+" "+chalk.green(projectName)+chalk.cyan(" --upgrade")),console.log(),process.exit(1));
//# sourceMappingURL=/sm/9c5c59e8f68e02ae954ddd766c48791bcbd715d4f6feb52a06d9c2b7bb2763b8.map