@burnish/cli
Version:
a cli for creating vue / react / flutter projects
61 lines (60 loc) • 3.28 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const shelljs_1 = __importDefault(require("shelljs"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const figlet_1 = __importDefault(require("figlet"));
const replace_1 = __importDefault(require("replace"));
const chalk_1 = __importDefault(require("chalk"));
const child_process_1 = __importDefault(require("child_process"));
const createFlutter_1 = require("./createFlutter");
// update target file
const updateWithoutNullSafetyTargetFile = (projectName, targetDir, description, version, spinner) => __awaiter(void 0, void 0, void 0, function* () {
shelljs_1.default.rm('-rf', `${targetDir}/lib`);
shelljs_1.default.rm('-f', `${targetDir}/pubspec.yaml`);
shelljs_1.default.mv(`${targetDir}/${createFlutter_1.COMMON_WITHOUT_NULL_SAFETY}/lib`, `${targetDir}`);
shelljs_1.default.mv(`${targetDir}/${createFlutter_1.COMMON_WITHOUT_NULL_SAFETY}/pubspec.yaml`, `${targetDir}`);
replace_1.default({
regex: createFlutter_1.regNameWihoutNullsafety,
replacement: `name: ${projectName}`,
paths: [`${targetDir}/pubspec.yaml`],
recursive: true,
silent: true
});
replace_1.default({
regex: createFlutter_1.regDescription,
replacement: `description: ${description}.`,
paths: [`${targetDir}/pubspec.yaml`],
recursive: true,
silent: true
});
replace_1.default({
regex: createFlutter_1.regVersion,
replacement: `version: ${version}`,
paths: [`${targetDir}/pubspec.yaml`],
recursive: true,
silent: true
});
yield fs_extra_1.default.remove(`${targetDir}/${createFlutter_1.COMMON_WITHOUT_NULL_SAFETY}`);
child_process_1.default.execSync('flutter pub get', { stdio: [0, 1], windowsHide: true });
spinner.stop();
// 依赖安装完成之后给出提示信息
console.log(chalk_1.default.white(`\n🎉 Successfully created project`), chalk_1.default.yellow(`${projectName}.`));
console.log(chalk_1.default.white('👉 Get started with the following commands:\n'));
console.log(`${chalk_1.default.cyan(`${chalk_1.default.gray('$')} cd ${projectName}`)}`);
console.log(chalk_1.default.cyan(`${chalk_1.default.gray('$')} flutter run\n\n`));
console.log(chalk_1.default.white(figlet_1.default.textSync('burnish-cli')));
process.exit();
});
exports.default = updateWithoutNullSafetyTargetFile;