UNPKG

@fesjs/fes

Version:

一个好用的前端管理台快速开发框架

57 lines (53 loc) 1.85 kB
"use strict"; var _nodeProcess = _interopRequireDefault(require("node:process")); var _utils = require("@fesjs/utils"); var _package = _interopRequireDefault(require("../package.json")); var _serviceWithBuiltIn = require("./serviceWithBuiltIn"); var _getCwd = _interopRequireDefault(require("./utils/getCwd")); var _getPkg = _interopRequireDefault(require("./utils/getPkg")); var _hackFesInBuild = require("./hackFesInBuild"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @copy 该文件代码大部分出自 umi,有需要请参考: * https://github.com/umijs/umi/blob/master/packages/umi/src/forkedDev.ts */ const args = (0, _utils.yParser)(_nodeProcess.default.argv.slice(2)); let closed = false; function onSignal(signal, service) { if (closed) return; closed = true; // 退出时触发插件中的onExit事件 service.applyPlugins({ key: 'onExit', type: service.ApplyPluginsType.event, args: { signal } }); _nodeProcess.default.exit(0); } (async () => { try { _nodeProcess.default.env.NODE_ENV = 'development'; (0, _hackFesInBuild.hackFesInBuild)(); const service = new _serviceWithBuiltIn.Service({ cwd: (0, _getCwd.default)(), pkg: (0, _getPkg.default)(_nodeProcess.default.cwd()), fesPkg: _package.default }); await service.run({ name: 'dev', args }); // kill(2) Ctrl-C _nodeProcess.default.once('SIGINT', () => onSignal('SIGINT', service)); // kill(3) Ctrl-\ _nodeProcess.default.once('SIGQUIT', () => onSignal('SIGQUIT', service)); // kill(15) default _nodeProcess.default.once('SIGTERM', () => onSignal('SIGTERM', service)); } catch (e) { console.error(_utils.chalk.red(e.message)); console.error(e.stack); _nodeProcess.default.exit(1); } })();