UNPKG

@vivo-minigame/cli

Version:

Command line interface for rapid Vivo minigame development

9 lines 3.53 kB
"use strict";var _Object$defineProperty=require("@babel/runtime-corejs2/core-js/object/define-property"),_interopRequireDefault=require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _assign=_interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign")),_stringify=_interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify")),_path=_interopRequireDefault(require("path")),_latestVersion=_interopRequireDefault(require("latest-version")),_cliSharedUtils=require("@vivo-minigame/cli-shared-utils"),_installDeps=require("./util/installDeps");/** * 对老的项目进行升级 */const cwd=process.env.PATH_PROJECT||process.cwd(),pkgPath=_path.default.join(cwd,"package.json"),pkgLockPath=_path.default.join(cwd,"package-lock.json"),babelConfigPathFrom=_path.default.join(__dirname,"../../","templates","default","babel.config.js"),babelConfigPathTo=_path.default.join(cwd,"babel.config.js"),babelConfigOldPath=_path.default.join(cwd,".babelrc"),nodeModules=_path.default.join(cwd,"node_modules");// 获取项目下的package.json路径 async function upgrade(){const content=_cliSharedUtils.fs.readFileSync(pkgPath,{encoding:"utf-8"}),pkg=JSON.parse(content);// 校验当前处理的是否是小游戏工程目录 if(pkg.subversion&&pkg.subversion.toolkit)// 获取cli-service的最新版本 (0,_cliSharedUtils.info)("\u5F00\u59CB\u5347\u7EA7..."),(0,_latestVersion.default)("@vivo-minigame/cli-service").then(version=>{_cliSharedUtils.fs.copy(babelConfigPathFrom,babelConfigPathTo).then(()=>{_cliSharedUtils.fs.remove(babelConfigOldPath).then(()=>{delete pkg.subversion,pkg.scripts=(0,_assign.default)({},pkg.scripts,{server:"mg-service server",build:"mg-service build",release:"mg-service release",watch:"mg-service watch"}),delete pkg.scripts.debug;// 删除老的依赖包 ["qgame-toolkit","babel-cli","babel-core","babel-preset-env","babel-plugin-transform-remove-strict-mode","babel-eslint","babel-loader","babel-plugin-syntax-jsx","css-what","koa","koa-send","koa-static","koa-body","koa-router","socket.io","webpack"].forEach(el=>{delete pkg.devDependencies[el]}),(0,_assign.default)(pkg.devDependencies,{"@babel/core":"^7.4.5","@babel/plugin-transform-runtime":"^7.4.4","@babel/preset-env":"^7.4.5","babel-loader":"^8.0.6","babel-eslint":"^8.2.1","@vivo-minigame/cli-service":`^${version}`}),pkg.dependencies=(0,_assign.default)({},pkg.dependencies,{"@babel/runtime-corejs2":"^7.5.5"}),_cliSharedUtils.fs.writeFileSync(pkgPath,(0,_stringify.default)(pkg,null,2)),(0,_cliSharedUtils.log)(`📄 Successfully upgrade files, now removing old dependencies...`),_cliSharedUtils.fs.remove(nodeModules).then(()=>{_cliSharedUtils.fs.remove(pkgLockPath).then(()=>{(0,_cliSharedUtils.log)(`📦 we are installing dependencies for you. this might take a while...`),(0,_cliSharedUtils.log)(`📦 if failed, you should install dependencies by yourself with ${_cliSharedUtils.chalk.green(`\`npm install\``)}`),(0,_installDeps.installDeps)(cwd,"npm").then(()=>{(0,_cliSharedUtils.log)(),(0,_cliSharedUtils.log)(`🎉 Successfully upgrade project ${_cliSharedUtils.chalk.yellow(pkg.name)}.`),(0,_cliSharedUtils.done)("\u5347\u7EA7\u5B8C\u6210")})})})})})});else throw new Error(`请确定当前目录${cwd}是否为旧版的小游戏工程目录`)}/** * 升级老的工程 */var _default=()=>upgrade().catch(err=>{throw(0,_cliSharedUtils.error)("Upgrade MiniGame Failed!"),err});exports.default=_default;