create-quickgame
Advanced tools
Comparing version 0.1.13 to 0.1.14
@@ -1,320 +0,1 @@ | ||
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.mkdirsSync = mkdirsSync; | ||
exports.traverseDirSync = traverseDirSync; | ||
var _path = _interopRequireDefault(require("path")); | ||
var _child_process = require("child_process"); | ||
var _fsExtra = _interopRequireDefault(require("fs-extra")); | ||
var _prompt = _interopRequireDefault(require("prompt")); | ||
var _chalk = _interopRequireDefault(require("chalk")); | ||
var _del = _interopRequireDefault(require("del")); | ||
/* | ||
* Copyright (C) 2017, hapjs.org. All rights reserved. | ||
*/ | ||
var objParams = {}; | ||
var isUpdateCli = false; | ||
var templatesPath = _path["default"].join(__dirname, '../templates'); | ||
/** | ||
* 参数处理 | ||
*/ | ||
function parseParams() { | ||
var args = process.argv; | ||
args = args.slice(2); | ||
if (args.length >= 1) { | ||
objParams.projectName = args[0]; | ||
args.shift(); | ||
} | ||
for (var i in args) { | ||
var item = args[i].split(/=/); | ||
item[0] && item[1] && (objParams[item[0]] = item[1]); | ||
} | ||
} | ||
parseParams(); | ||
/** | ||
* 生成工程目录 | ||
* @param name 项目名 | ||
*/ | ||
function generate(name) { | ||
if (name === '') { | ||
name = 'HelloWorld'; | ||
} | ||
if (Object.keys(objParams).length > 1) { | ||
return createProject(name, objParams.path); | ||
} | ||
promptName(name, _chalk["default"].green('Init your Project'), function (err, result) { | ||
if (err) { | ||
// 错误返回 | ||
return; | ||
} | ||
var projectName = result.name; | ||
var dirpath = _path["default"].join(process.cwd()); | ||
createProject(projectName, dirpath); | ||
}); | ||
} | ||
/** | ||
* 递归创建目录 同步方法 | ||
* @param dir | ||
* @returns {boolean} | ||
*/ | ||
function mkdirsSync(dir) { | ||
if (_fsExtra["default"].existsSync(dir)) { | ||
return true; | ||
} else { | ||
if (mkdirsSync(_path["default"].dirname(dir))) { | ||
_fsExtra["default"].mkdirSync(dir); | ||
return true; | ||
} | ||
} | ||
} | ||
/** | ||
* 遍历目录文件 同步方法 | ||
* @param {String} dir - 模板文件路径 | ||
* @param {Array} files - 收集的文件列表 | ||
*/ | ||
function traverseDirSync(dir, files) { | ||
var list = _fsExtra["default"].readdirSync(dir); | ||
list.forEach(function (file) { | ||
file = _path["default"].join(dir, file); | ||
var stat = _fsExtra["default"].statSync(file); | ||
if (stat && stat.isDirectory()) { | ||
traverseDirSync(file, files); | ||
} else { | ||
files.push(file); | ||
} | ||
}); | ||
} | ||
/** | ||
* 命令行输入 | ||
* @param name | ||
* @param message | ||
* @param done | ||
*/ | ||
function promptName(name, message, done) { | ||
var schema = { | ||
properties: { | ||
name: { | ||
message: message, | ||
"default": name | ||
} | ||
} | ||
}; | ||
_prompt["default"].start(); | ||
_prompt["default"].get(schema, done); | ||
} | ||
/** | ||
* 创建项目目录 | ||
* @param name 项目名 | ||
* @param dirpath 目标项目路径 | ||
*/ | ||
function createProject(name) { | ||
var dir = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.'; | ||
var dirpath = ''; | ||
if (dir === '.' || dir === './') { | ||
dirpath = _path["default"].join(process.cwd(), name); | ||
} else { | ||
dirpath = _path["default"].join(dir, name); | ||
} | ||
if (!mkdirsSync(dirpath)) { | ||
return console.log(_chalk["default"].red('the folder "' + dirpath + '" create failed!.')); | ||
} // 拷贝project | ||
copyFiles(dirpath, templatesPath); // 初始化模板 | ||
initTemplate(dirpath, name); | ||
} | ||
/** | ||
* 初始模板 | ||
* @param {String} dirpath - 项目路径 | ||
* @param {String} projectName - | ||
*/ | ||
function initTemplate(dirpath) { | ||
var projectName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'quickgame'; | ||
var file = _path["default"].join(dirpath, 'package.json'); | ||
var cliVersion = require('../package.json')['devDependencies']['quickgame-cli']; | ||
var replaceNames = { | ||
'appName': projectName, | ||
'cliVersion': cliVersion | ||
}; | ||
replacePackageJson(file, replaceNames); | ||
resetManifest(dirpath, objParams); | ||
install(dirpath); | ||
} | ||
/** | ||
* 替换package.json中的模板参数 | ||
* @param {替换文件} file | ||
* @param {值} obj | ||
*/ | ||
function replacePackageJson(file, obj) { | ||
var content = _fsExtra["default"].readFileSync(file, { | ||
encoding: 'utf-8' | ||
}); | ||
if (typeof content === 'string') { | ||
content = JSON.parse(content); | ||
} | ||
if (!content['dependencies']) { | ||
content['dependencies'] = { | ||
'quickgame-cli': obj.cliVersion | ||
}; | ||
isUpdateCli = true; | ||
} else if (!content['dependencies']['quickgame-cli']) { | ||
content['dependencies']['quickgame-cli'] = obj.cliVersion; | ||
isUpdateCli = true; | ||
} else { | ||
var quickgameCliVersion = content['dependencies']['quickgame-cli']; | ||
if (quickgameCliVersion !== obj.cliVersion) { | ||
isUpdateCli = true; | ||
} | ||
content['dependencies']['quickgame-cli'] = obj.cliVersion; | ||
} | ||
content.name = obj.appName; | ||
_fsExtra["default"].writeFileSync(file, JSON.stringify(content, null, 4)); | ||
} | ||
/** | ||
* 设置manifest的值 | ||
* @param {传递的参数} obj | ||
*/ | ||
function resetManifest(dir, obj) { | ||
var file = _path["default"].join(dir, './manifest.json'); | ||
var content = _fsExtra["default"].readFileSync(file, { | ||
encoding: 'utf-8' | ||
}); | ||
if (typeof content === 'string') { | ||
content = JSON.parse(content); | ||
} | ||
for (var i in content) { | ||
if (obj[i]) { | ||
content[i] = obj[i]; | ||
} | ||
} | ||
_fsExtra["default"].writeFileSync(file, JSON.stringify(content, null, 4)); | ||
} | ||
function install(dir) { | ||
var node_mod = _path["default"].join(dir, 'node_modules'); | ||
if (!_fsExtra["default"].existsSync(node_mod)) { | ||
console.log('Installing packages. This might take a couple of minutes.'); | ||
(0, _child_process.execSync)('npm install ', { | ||
cwd: dir, | ||
stdio: [0, 1, 2] | ||
}); | ||
} else if (isUpdateCli && _fsExtra["default"].existsSync(node_mod)) { | ||
_del["default"].sync("".concat(node_mod), { | ||
force: true | ||
}); | ||
console.log('Installing packages. This might take a couple of minutes.'); | ||
(0, _child_process.execSync)('npm install ', { | ||
cwd: dir, | ||
stdio: [0, 1, 2] | ||
}); | ||
} | ||
} | ||
/** | ||
* 拷贝模板目录 | ||
* @param {String} dest 目标路径 | ||
* @param {String} src 模板文件路径 | ||
*/ | ||
function copyFiles(dest, src) { | ||
var files = []; // 遍历收集文件列表 | ||
traverseDirSync(src, files); | ||
files.forEach(function (file) { | ||
var relative = _path["default"].relative(src, file); | ||
var finalPath = _path["default"].join(dest, relative); | ||
if (!_fsExtra["default"].existsSync(finalPath)) { | ||
console.log(_chalk["default"].white("file: ".concat(finalPath, " created."))); | ||
_fsExtra["default"].copySync(file, finalPath); | ||
} else { | ||
console.log(_chalk["default"].yellow("file: ".concat(finalPath, " already existed."))); | ||
} | ||
}); | ||
} | ||
/** | ||
* 字符串替换 | ||
* @param names | ||
* @param files | ||
*/ | ||
// function replaceFiles (names, files) { | ||
// files.forEach(file => { | ||
// let content = fs.readFileSync(file, { | ||
// encoding: 'utf-8' | ||
// }) | ||
// Object.keys(names).forEach(n => { | ||
// /* eslint-disable no-eval */ | ||
// content = content.replace(eval(`/{{${n}}}/g`), function (defaultName) { | ||
// return names[n] || defaultName | ||
// }) | ||
// /* eslint-enable no-eval */ | ||
// }) | ||
// fs.writeFileSync(file, content) | ||
// }) | ||
// } | ||
generate(objParams.projectName); | ||
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:!0}),exports.mkdirsSync=mkdirsSync,exports.traverseDirSync=traverseDirSync;var _path=_interopRequireDefault(require("path")),_child_process=require("child_process"),_fsExtra=_interopRequireDefault(require("fs-extra")),_prompt=_interopRequireDefault(require("prompt")),_chalk=_interopRequireDefault(require("chalk")),_del=_interopRequireDefault(require("del")),objParams={},isUpdateCli=!1,templatesPath=_path.default.join(__dirname,"../templates");function parseParams(){var e=process.argv;for(var a in 1<=(e=e.slice(2)).length&&(objParams.projectName=e[0],e.shift()),e){var t=e[a].split(/=/);t[0]&&t[1]&&(objParams[t[0]]=t[1])}}function generate(e){if(""===e&&(e="HelloWorld"),1<Object.keys(objParams).length)return createProject(e,objParams.path);promptName(e,_chalk.default.green("Init your Project"),function(e,a){e||createProject(a.name,_path.default.join(process.cwd()))})}function mkdirsSync(e){return!!_fsExtra.default.existsSync(e)||(mkdirsSync(_path.default.dirname(e))?(_fsExtra.default.mkdirSync(e),!0):void 0)}function traverseDirSync(t,r){_fsExtra.default.readdirSync(t).forEach(function(e){e=_path.default.join(t,e);var a=_fsExtra.default.statSync(e);a&&a.isDirectory()?traverseDirSync(e,r):r.push(e)})}function promptName(e,a,t){var r={properties:{name:{message:a,default:e}}};_prompt.default.start(),_prompt.default.get(r,t)}function createProject(e){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:".",t="";if(!mkdirsSync(t="."===a||"./"===a?_path.default.join(process.cwd(),e):_path.default.join(a,e)))return console.log(_chalk.default.red('the folder "'+t+'" create failed!.'));copyFiles(t,templatesPath),initTemplate(t,e)}function initTemplate(e){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"quickgame";replacePackageJson(_path.default.join(e,"package.json"),{appName:a,cliVersion:require("../package.json").devDependencies["quickgame-cli"]}),resetManifest(e,objParams),install(e)}function replacePackageJson(e,a){var t=_fsExtra.default.readFileSync(e,{encoding:"utf-8"});if("string"==typeof t&&(t=JSON.parse(t)),t.dependencies)if(t.dependencies["quickgame-cli"]){t.dependencies["quickgame-cli"]!==a.cliVersion&&(isUpdateCli=!0),t.dependencies["quickgame-cli"]=a.cliVersion}else t.dependencies["quickgame-cli"]=a.cliVersion,isUpdateCli=!0;else t.dependencies={"quickgame-cli":a.cliVersion},isUpdateCli=!0;t.name=a.appName,_fsExtra.default.writeFileSync(e,JSON.stringify(t,null,4))}function resetManifest(e,a){var t=_path.default.join(e,"./manifest.json"),r=_fsExtra.default.readFileSync(t,{encoding:"utf-8"});for(var i in"string"==typeof r&&(r=JSON.parse(r)),r)a[i]&&(r[i]=a[i]);_fsExtra.default.writeFileSync(t,JSON.stringify(r,null,4))}function install(e){var a=_path.default.join(e,"node_modules");_fsExtra.default.existsSync(a)?isUpdateCli&&_fsExtra.default.existsSync(a)&&(_del.default.sync("".concat(a),{force:!0}),console.log("Installing packages. This might take a couple of minutes."),(0,_child_process.execSync)("npm install ",{cwd:e,stdio:[0,1,2]})):(console.log("Installing packages. This might take a couple of minutes."),(0,_child_process.execSync)("npm install ",{cwd:e,stdio:[0,1,2]}))}function copyFiles(r,i){var e=[];traverseDirSync(i,e),e.forEach(function(e){var a=_path.default.relative(i,e),t=_path.default.join(r,a);_fsExtra.default.existsSync(t)?console.log(_chalk.default.yellow("file: ".concat(t," already existed."))):(console.log(_chalk.default.white("file: ".concat(t," created."))),_fsExtra.default.copySync(e,t))})}parseParams(),generate(objParams.projectName); |
{ | ||
"name": "create-quickgame", | ||
"version": "0.1.13", | ||
"version": "0.1.14", | ||
"description": "create quick game", | ||
@@ -27,3 +27,3 @@ "bin": { | ||
}, | ||
"gitHead": "3c98ab41c82e33600e2a5d614342dbf4ac2daf3c" | ||
"gitHead": "3a5f4f77fd78d11ca39bb256a0070f1dc72e9d61" | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
9172
21
4
2