UNPKG

@fesjs/fes

Version:

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

166 lines (158 loc) 3.9 kB
// src/forkedDev.ts import process3 from "process"; import pc from "picocolors"; import { yParser } from "@fesjs/utils"; // package.json var package_default = { name: "@fesjs/fes", type: "module", version: "4.0.1", description: "\u4E00\u4E2A\u597D\u7528\u7684\u524D\u7AEF\u7BA1\u7406\u53F0\u5FEB\u901F\u5F00\u53D1\u6846\u67B6", preferGlobal: true, author: "qlin", license: "MIT", homepage: "https://github.com/WeBankFinTech/fes.js#readme", repository: { type: "git", url: "git+https://github.com/WeBankFinTech/fes.js.git", directory: "packages/fes" }, bugs: { url: "https://github.com/WeBankFinTech/fes.js/issues" }, keywords: [ "\u7BA1\u7406\u7AEF", "fes", "fast", "easy", "strong" ], exports: { import: { node: "./dist/node.js", types: "./types.d.ts", default: "./dist/browser.js" } }, main: "./dist/node.js", typings: "types.d.ts", bin: { fes: "./bin/fes.mjs" }, files: [ "bin", "dist", "types.d.ts" ], engines: { node: ">= 18.0.0" }, scripts: { watch: "tsup --watch", build: "tsup" }, publishConfig: { access: "public" }, dependencies: { "@fesjs/compiler": "^4.0.1", "@fesjs/preset-built-in": "^4.0.1", "@fesjs/utils": "^4.0.1", "fs-extra": "^11.3.1", picocolors: "^1.1.1", "vue-router": "^4.5.1" }, devDependencies: { "@types/fs-extra": "^11.0.4" } }; // src/serviceWithBuiltIn.ts import { join as join2 } from "path"; import process from "process"; import { Service as CoreService } from "@fesjs/compiler"; import { resolve } from "@fesjs/utils"; import { readJSONSync } from "fs-extra/esm"; // src/utils/shared.ts import { dirname, join } from "path"; import { fileURLToPath } from "url"; var OWNER_DIR = join(dirname(fileURLToPath(import.meta.url)), ".."); // src/serviceWithBuiltIn.ts var Service = class extends CoreService { constructor(opts) { const pkg = readJSONSync(join2(OWNER_DIR, "package.json")); process.env.FES_VERSION = pkg.version; process.env.FES_DIR = OWNER_DIR; super({ ...opts, presets: [resolve.sync("@fesjs/preset-built-in", { basedir: OWNER_DIR }), ...opts.presets || []], plugins: [...opts.plugins || []] }); } }; // src/utils/getCwd.ts import { isAbsolute, join as join3 } from "path"; import process2 from "process"; var getCwd_default = () => { const cwd = process2.cwd(); if (process2.env.APP_ROOT) { if (!isAbsolute(process2.env.APP_ROOT)) { return join3(cwd, process2.env.APP_ROOT); } return process2.env.APP_ROOT; } return cwd; }; // src/utils/getPkg.ts import { join as join4 } from "path"; import { readJSONSync as readJSONSync2 } from "fs-extra/esm"; var getPkg_default = (dir) => { try { return readJSONSync2(join4(getCwd_default(), "package.json")); } catch { try { return readJSONSync2(join4(dir, "package.json")); } catch { return void 0; } } }; // src/forkedDev.ts var args = yParser(process3.argv.slice(2)); var closed = false; function onSignal(signal, service) { if (closed) { return; } closed = true; service.applyPlugins({ key: "onExit", type: service.ApplyPluginsType.event, args: { signal } }); process3.exit(0); } (async () => { try { process3.env.NODE_ENV = "development"; const service = new Service({ cwd: getCwd_default(), pkg: getPkg_default(process3.cwd()), fesPkg: package_default }); await service.ready; await service.run({ args }); process3.once("SIGINT", () => onSignal("SIGINT", service)); process3.once("SIGQUIT", () => onSignal("SIGQUIT", service)); process3.once("SIGTERM", () => onSignal("SIGTERM", service)); } catch (e) { console.error(pc.red(e.message)); console.error(e.stack); process3.exit(1); } })();