diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index be86fe6..b30af0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -263,6 +263,9 @@ importers: '@rollup/plugin-node-resolve': specifier: ^15.3.0 version: 15.3.0(rollup@4.26.0) + '@rollup/plugin-replace': + specifier: ^6.0.1 + version: 6.0.1(rollup@4.26.0) '@rollup/plugin-typescript': specifier: ^12.1.1 version: 12.1.1(rollup@4.26.0)(tslib@2.8.1)(typescript@5.6.3) @@ -745,6 +748,15 @@ packages: rollup: optional: true + '@rollup/plugin-replace@6.0.1': + resolution: {integrity: sha512-2sPh9b73dj5IxuMmDAsQWVFT7mR+yoHweBaXG2W/R8vQ+IWZlnaI7BR7J6EguVQUp1hd8Z7XuozpDjEKQAAC2Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/plugin-terser@0.4.4': resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} engines: {node: '>=14.0.0'} @@ -4632,6 +4644,13 @@ snapshots: optionalDependencies: rollup: 4.26.0 + '@rollup/plugin-replace@6.0.1(rollup@4.26.0)': + dependencies: + '@rollup/pluginutils': 5.1.3(rollup@4.26.0) + magic-string: 0.30.12 + optionalDependencies: + rollup: 4.26.0 + '@rollup/plugin-terser@0.4.4(rollup@4.24.0)': dependencies: serialize-javascript: 6.0.2 diff --git a/services/pm2-manage/package.json b/services/pm2-manage/package.json index 0599867..8192cb0 100644 --- a/services/pm2-manage/package.json +++ b/services/pm2-manage/package.json @@ -4,7 +4,7 @@ "description": "pm2的服务", "main": "index.js", "scripts": { - "watch": "rollup -c rollup.config.mjs -w", + "watch": "cross-env NODE_ENV=development rollup -c rollup.config.mjs -w", "dev": "cross-env NODE_ENV=development nodemon --delay 2.5 -e js,cjs,mjs --exec node dist/app.mjs", "test": "tsx test/**/*.ts", "dev:watch": "concurrently -n \"Watch,Dev\" -c \"green,blue\" \"npm run watch\" \"sleep 1 && npm run dev\" ", @@ -17,7 +17,7 @@ "license": "MIT", "type": "module", "app": { - "type": "service" + "type": "inline" }, "dependencies": { "@abearxiong/auth": "1.0.2", @@ -25,14 +25,15 @@ "@kevisual/router": "0.0.4-alpha-8", "nanoid": "^5.0.8", "pg": "^8.13.1", - "sequelize": "^6.37.5", - "pm2": "^5.4.3" + "pm2": "^5.4.3", + "sequelize": "^6.37.5" }, "devDependencies": { "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.3.0", + "@rollup/plugin-replace": "^6.0.1", "@rollup/plugin-typescript": "^12.1.1", "@types/node": "^22.9.0", "concurrently": "^9.1.0", diff --git a/services/pm2-manage/rollup.config.mjs b/services/pm2-manage/rollup.config.mjs index ae51648..35cf884 100644 --- a/services/pm2-manage/rollup.config.mjs +++ b/services/pm2-manage/rollup.config.mjs @@ -6,9 +6,13 @@ import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; import path from 'path'; import alias from '@rollup/plugin-alias'; -import esbuild from 'rollup-plugin-esbuild' -// import replace from '@rollup/plugin-replace'; +import esbuild from 'rollup-plugin-esbuild'; +import replace from '@rollup/plugin-replace'; +const isDev = process.env.NODE_ENV === 'development'; +// 是否内联应用,内联应用不会启动服务,只会导出 App 实例,从package.json中获取 +const exportApp = true; +console.log('isDev================:', isDev); /** * @type {import('rollup').RollupOptions} */ @@ -21,6 +25,12 @@ const config = { format: 'esm', }, plugins: [ + replace({ + preventAssignment: true, // // 避免替换时发生意外赋值 + DEV_SERVER: JSON.stringify(isDev), // DEV_SERVE + EXPORT_APP: JSON.stringify(exportApp), // 是否内联应用 + EXPORT_PORT: JSON.stringify(3006), // 导出端口 + }), alias({ // only esbuild needs to be configured entries: [ @@ -54,7 +64,7 @@ const config = { esbuild({ target: 'node22', // 目标为 Node.js 14 minify: false, // 启用代码压缩 - tsconfig: 'tsconfig.json' + tsconfig: 'tsconfig.json', }), // typescript({ // declaration: false, diff --git a/services/pm2-manage/src/index.ts b/services/pm2-manage/src/index.ts index 8e0ffb1..d65e737 100644 --- a/services/pm2-manage/src/index.ts +++ b/services/pm2-manage/src/index.ts @@ -27,7 +27,12 @@ app ctx.body = services; }) .addTo(app); +// @ts-ignore -app.listen(3006, () => { - console.log('pm2-manage is running on', `http://localhost:3006`); -}); +console.log('DEV_SERVER', DEV_SERVER == false); +// @ts-ignore +if (DEV_SERVER || !EXPORT_APP) { + app.listen(3006, () => { + console.log('pm2-manage is running on', `http://localhost:3006`); + }); +}