@vivo-minigame/cli
Version:
Command line interface for rapid Vivo minigame development
32 lines (31 loc) • 1.32 kB
JavaScript
;var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");_Object$defineProperty(exports, "__esModule", { value: true });exports.default = loadCommand;var _cliSharedUtils = require("@vivo-minigame/cli-shared-utils");
var _importGlobal = _interopRequireDefault(require("import-global"));
function loadCommand(commandName, moduleName) {
const isNotFoundError = (err) => {
return err.message.match(/Cannot find module/);
};
try {
return require(moduleName);
} catch (err) {
if (isNotFoundError(err)) {
try {
return (0, _importGlobal.default)(moduleName);
} catch (err2) {
if (isNotFoundError(err2)) {
const installCommand = `npm install -g`;
(0, _cliSharedUtils.log)();
(0, _cliSharedUtils.log)(
` Command ${_cliSharedUtils.chalk.cyan(`mg ${commandName}`)} requires a global addon to be installed.\n` +
` Please run ${_cliSharedUtils.chalk.cyan(`${installCommand} ${moduleName}`)} and try again.`
);
(0, _cliSharedUtils.log)();
process.exit(1);
} else {
throw err2;
}
}
} else {
throw err;
}
}
}