@fecommunity/reactpress 2.0.0-beta.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +6 -6
- package/README.md +28 -176
- package/bin/reactpress-cli-shim.js +28 -0
- package/bin/reactpress.js +244 -61
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +102 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +54 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +33 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/restart.d.ts +2 -0
- package/dist/commands/restart.d.ts.map +1 -0
- package/dist/commands/restart.js +29 -0
- package/dist/commands/restart.js.map +1 -0
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +31 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +20 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +5 -0
- package/dist/commands/stop.d.ts.map +1 -0
- package/dist/commands/stop.js +29 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/i18n.js +8 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/package.json +3 -0
- package/dist/services/config.d.ts +11 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +102 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/database.d.ts +43 -0
- package/dist/services/database.d.ts.map +1 -0
- package/dist/services/database.js +252 -0
- package/dist/services/database.js.map +1 -0
- package/dist/services/exec.d.ts +22 -0
- package/dist/services/exec.d.ts.map +1 -0
- package/dist/services/exec.js +46 -0
- package/dist/services/exec.js.map +1 -0
- package/dist/services/init.d.ts +10 -0
- package/dist/services/init.d.ts.map +1 -0
- package/dist/services/init.js +50 -0
- package/dist/services/init.js.map +1 -0
- package/dist/services/process.d.ts +9 -0
- package/dist/services/process.d.ts.map +1 -0
- package/dist/services/process.js +98 -0
- package/dist/services/process.js.map +1 -0
- package/dist/services/server-health.d.ts +4 -0
- package/dist/services/server-health.d.ts.map +1 -0
- package/dist/services/server-health.js +27 -0
- package/dist/services/server-health.js.map +1 -0
- package/dist/services/server.d.ts +19 -0
- package/dist/services/server.d.ts.map +1 -0
- package/dist/services/server.js +133 -0
- package/dist/services/server.js.map +1 -0
- package/dist/templates/config.default.json +12 -0
- package/dist/templates/docker-compose.yml +27 -0
- package/dist/templates/env.default +11 -0
- package/dist/templates/package.json +10 -0
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/utils/cli-context.d.ts +4 -0
- package/dist/utils/cli-context.d.ts.map +1 -0
- package/dist/utils/cli-context.js +10 -0
- package/dist/utils/cli-context.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +32 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/paths.d.ts +17 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +27 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/platform.d.ts +8 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +21 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/port.d.ts +5 -0
- package/dist/utils/port.d.ts.map +1 -0
- package/dist/utils/port.js +25 -0
- package/dist/utils/port.js.map +1 -0
- package/dist/utils/server-bundle.d.ts +11 -0
- package/dist/utils/server-bundle.d.ts.map +1 -0
- package/dist/utils/server-bundle.js +71 -0
- package/dist/utils/server-bundle.js.map +1 -0
- package/lib/api-dev-runner.js +6 -0
- package/lib/api-dev.js +85 -0
- package/lib/bootstrap.js +114 -0
- package/lib/build.js +29 -0
- package/lib/db-backup.js +46 -0
- package/lib/dev-banner.js +40 -0
- package/lib/dev.js +134 -0
- package/lib/docker.js +157 -0
- package/lib/doctor.js +210 -0
- package/lib/http.js +147 -0
- package/lib/i18n/index.js +32 -0
- package/lib/i18n/strings.js +559 -0
- package/lib/lifecycle.js +160 -0
- package/lib/paths.js +75 -0
- package/lib/pm2.js +32 -0
- package/lib/process.js +45 -0
- package/{scripts/publish-packages.js → lib/publish.js} +255 -58
- package/lib/root.js +31 -0
- package/lib/spawn.js +91 -0
- package/lib/status.js +108 -0
- package/package.json +34 -72
- package/scripts/install-bundled-runtime.mjs +46 -0
- package/server/bin/reactpress-server.js +4 -4
- package/server/dist/app.module.d.ts +2 -0
- package/server/dist/app.module.js +105 -0
- package/server/dist/app.module.js.map +1 -0
- package/server/dist/common/api-messages.d.ts +32 -0
- package/server/dist/common/api-messages.js +36 -0
- package/server/dist/common/api-messages.js.map +1 -0
- package/server/dist/filters/http-exception.filter.d.ts +4 -0
- package/server/dist/filters/http-exception.filter.js +36 -0
- package/server/dist/filters/http-exception.filter.js.map +1 -0
- package/server/dist/generate-swagger.d.ts +1 -0
- package/server/dist/generate-swagger.js +73 -0
- package/server/dist/generate-swagger.js.map +1 -0
- package/server/dist/interceptors/transform.interceptor.d.ts +9 -0
- package/server/dist/interceptors/transform.interceptor.js +36 -0
- package/server/dist/interceptors/transform.interceptor.js.map +1 -0
- package/server/dist/logger/index.d.ts +4 -0
- package/server/dist/logger/index.js +33 -0
- package/server/dist/logger/index.js.map +1 -0
- package/server/dist/main.d.ts +6 -0
- package/server/dist/main.js +263 -0
- package/server/dist/main.js.map +1 -0
- package/server/dist/modules/api-key/api-key.controller.d.ts +14 -0
- package/server/dist/modules/api-key/api-key.controller.js +63 -0
- package/server/dist/modules/api-key/api-key.controller.js.map +1 -0
- package/server/dist/modules/api-key/api-key.entity.d.ts +11 -0
- package/server/dist/modules/api-key/api-key.entity.js +63 -0
- package/server/dist/modules/api-key/api-key.entity.js.map +1 -0
- package/server/dist/modules/api-key/api-key.guard.d.ts +7 -0
- package/server/dist/modules/api-key/api-key.guard.js +40 -0
- package/server/dist/modules/api-key/api-key.guard.js.map +1 -0
- package/server/dist/modules/api-key/api-key.module.d.ts +2 -0
- package/server/dist/modules/api-key/api-key.module.js +28 -0
- package/server/dist/modules/api-key/api-key.module.js.map +1 -0
- package/server/dist/modules/api-key/api-key.service.d.ts +15 -0
- package/server/dist/modules/api-key/api-key.service.js +81 -0
- package/server/dist/modules/api-key/api-key.service.js.map +1 -0
- package/server/dist/modules/article/article-revision.entity.d.ts +11 -0
- package/server/dist/modules/article/article-revision.entity.js +53 -0
- package/server/dist/modules/article/article-revision.entity.js.map +1 -0
- package/server/dist/modules/article/article.controller.d.ts +32 -0
- package/server/dist/modules/article/article.controller.js +242 -0
- package/server/dist/modules/article/article.controller.js.map +1 -0
- package/server/dist/modules/article/article.entity.d.ts +24 -0
- package/server/dist/modules/article/article.entity.js +133 -0
- package/server/dist/modules/article/article.entity.js.map +1 -0
- package/server/dist/modules/article/article.module.d.ts +2 -0
- package/server/dist/modules/article/article.module.js +42 -0
- package/server/dist/modules/article/article.module.js.map +1 -0
- package/server/dist/modules/article/article.service.d.ts +38 -0
- package/server/dist/modules/article/article.service.js +357 -0
- package/server/dist/modules/article/article.service.js.map +1 -0
- package/server/dist/modules/article/article.util.d.ts +1 -0
- package/server/dist/modules/article/article.util.js +9 -0
- package/server/dist/modules/article/article.util.js.map +1 -0
- package/server/dist/modules/article/scheduled-publish.service.d.ts +13 -0
- package/server/dist/modules/article/scheduled-publish.service.js +65 -0
- package/server/dist/modules/article/scheduled-publish.service.js.map +1 -0
- package/server/dist/modules/auth/auth.controller.d.ts +12 -0
- package/server/dist/modules/auth/auth.controller.js +66 -0
- package/server/dist/modules/auth/auth.controller.js.map +1 -0
- package/server/dist/modules/auth/auth.module.d.ts +2 -0
- package/server/dist/modules/auth/auth.module.js +41 -0
- package/server/dist/modules/auth/auth.module.js.map +1 -0
- package/server/dist/modules/auth/auth.service.d.ts +26 -0
- package/server/dist/modules/auth/auth.service.js +128 -0
- package/server/dist/modules/auth/auth.service.js.map +1 -0
- package/server/dist/modules/auth/jwt-auth.guard.d.ts +7 -0
- package/server/dist/modules/auth/jwt-auth.guard.js +30 -0
- package/server/dist/modules/auth/jwt-auth.guard.js.map +1 -0
- package/server/dist/modules/auth/jwt.strategy.d.ts +9 -0
- package/server/dist/modules/auth/jwt.strategy.js +39 -0
- package/server/dist/modules/auth/jwt.strategy.js.map +1 -0
- package/server/dist/modules/auth/roles.guard.d.ts +10 -0
- package/server/dist/modules/auth/roles.guard.js +46 -0
- package/server/dist/modules/auth/roles.guard.js.map +1 -0
- package/server/dist/modules/category/category.controller.d.ts +11 -0
- package/server/dist/modules/category/category.controller.js +91 -0
- package/server/dist/modules/category/category.controller.js.map +1 -0
- package/server/dist/modules/category/category.entity.d.ts +9 -0
- package/server/dist/modules/category/category.entity.js +60 -0
- package/server/dist/modules/category/category.entity.js.map +1 -0
- package/server/dist/modules/category/category.module.d.ts +2 -0
- package/server/dist/modules/category/category.module.js +27 -0
- package/server/dist/modules/category/category.module.js.map +1 -0
- package/server/dist/modules/category/category.service.d.ts +12 -0
- package/server/dist/modules/category/category.service.js +90 -0
- package/server/dist/modules/category/category.service.js.map +1 -0
- package/server/dist/modules/comment/comment.controller.d.ts +12 -0
- package/server/dist/modules/comment/comment.controller.js +100 -0
- package/server/dist/modules/comment/comment.controller.js.map +1 -0
- package/server/dist/modules/comment/comment.entity.d.ts +17 -0
- package/server/dist/modules/comment/comment.entity.js +104 -0
- package/server/dist/modules/comment/comment.entity.js.map +1 -0
- package/server/dist/modules/comment/comment.module.d.ts +2 -0
- package/server/dist/modules/comment/comment.module.js +39 -0
- package/server/dist/modules/comment/comment.module.js.map +1 -0
- package/server/dist/modules/comment/comment.service.d.ts +26 -0
- package/server/dist/modules/comment/comment.service.js +182 -0
- package/server/dist/modules/comment/comment.service.js.map +1 -0
- package/server/dist/modules/comment/html.d.ts +15 -0
- package/server/dist/modules/comment/html.js +632 -0
- package/server/dist/modules/comment/html.js.map +1 -0
- package/server/dist/modules/file/file.controller.d.ts +10 -0
- package/server/dist/modules/file/file.controller.js +84 -0
- package/server/dist/modules/file/file.controller.js.map +1 -0
- package/server/dist/modules/file/file.entity.d.ts +9 -0
- package/server/dist/modules/file/file.entity.js +60 -0
- package/server/dist/modules/file/file.entity.js.map +1 -0
- package/server/dist/modules/file/file.module.d.ts +2 -0
- package/server/dist/modules/file/file.module.js +27 -0
- package/server/dist/modules/file/file.module.js.map +1 -0
- package/server/dist/modules/file/file.service.d.ts +17 -0
- package/server/dist/modules/file/file.service.js +111 -0
- package/server/dist/modules/file/file.service.js.map +1 -0
- package/server/dist/modules/health/health.controller.d.ts +11 -0
- package/server/dist/modules/health/health.controller.js +57 -0
- package/server/dist/modules/health/health.controller.js.map +1 -0
- package/server/dist/modules/health/health.module.d.ts +2 -0
- package/server/dist/modules/health/health.module.js +20 -0
- package/server/dist/modules/health/health.module.js.map +1 -0
- package/server/dist/modules/install/install.controller.d.ts +11 -0
- package/server/dist/modules/install/install.controller.js +49 -0
- package/server/dist/modules/install/install.controller.js.map +1 -0
- package/server/dist/modules/install/install.module.d.ts +2 -0
- package/server/dist/modules/install/install.module.js +26 -0
- package/server/dist/modules/install/install.module.js.map +1 -0
- package/server/dist/modules/install/install.service.d.ts +12 -0
- package/server/dist/modules/install/install.service.js +63 -0
- package/server/dist/modules/install/install.service.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.controller.d.ts +14 -0
- package/server/dist/modules/knowledge/knowledge.controller.js +128 -0
- package/server/dist/modules/knowledge/knowledge.controller.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.entity.d.ts +18 -0
- package/server/dist/modules/knowledge/knowledge.entity.js +109 -0
- package/server/dist/modules/knowledge/knowledge.entity.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.module.d.ts +2 -0
- package/server/dist/modules/knowledge/knowledge.module.js +27 -0
- package/server/dist/modules/knowledge/knowledge.module.js.map +1 -0
- package/server/dist/modules/knowledge/knowledge.service.d.ts +14 -0
- package/server/dist/modules/knowledge/knowledge.service.js +144 -0
- package/server/dist/modules/knowledge/knowledge.service.js.map +1 -0
- package/server/dist/modules/page/page.controller.d.ts +12 -0
- package/server/dist/modules/page/page.controller.js +102 -0
- package/server/dist/modules/page/page.controller.js.map +1 -0
- package/server/dist/modules/page/page.entity.d.ts +15 -0
- package/server/dist/modules/page/page.entity.js +94 -0
- package/server/dist/modules/page/page.entity.js.map +1 -0
- package/server/dist/modules/page/page.module.d.ts +2 -0
- package/server/dist/modules/page/page.module.js +27 -0
- package/server/dist/modules/page/page.module.js.map +1 -0
- package/server/dist/modules/page/page.service.d.ts +12 -0
- package/server/dist/modules/page/page.service.js +98 -0
- package/server/dist/modules/page/page.service.js.map +1 -0
- package/server/dist/modules/search/search.controller.d.ts +8 -0
- package/server/dist/modules/search/search.controller.js +67 -0
- package/server/dist/modules/search/search.controller.js.map +1 -0
- package/server/dist/modules/search/search.entity.d.ts +8 -0
- package/server/dist/modules/search/search.entity.js +59 -0
- package/server/dist/modules/search/search.entity.js.map +1 -0
- package/server/dist/modules/search/search.module.d.ts +2 -0
- package/server/dist/modules/search/search.module.js +27 -0
- package/server/dist/modules/search/search.module.js.map +1 -0
- package/server/dist/modules/search/search.service.d.ts +12 -0
- package/server/dist/modules/search/search.service.js +84 -0
- package/server/dist/modules/search/search.service.js.map +1 -0
- package/server/dist/modules/setting/setting.constant.d.ts +3 -0
- package/server/dist/modules/setting/setting.constant.js +25 -0
- package/server/dist/modules/setting/setting.constant.js.map +1 -0
- package/server/dist/modules/setting/setting.controller.d.ts +12 -0
- package/server/dist/modules/setting/setting.controller.js +77 -0
- package/server/dist/modules/setting/setting.controller.js.map +1 -0
- package/server/dist/modules/setting/setting.entity.d.ts +26 -0
- package/server/dist/modules/setting/setting.entity.js +149 -0
- package/server/dist/modules/setting/setting.entity.js.map +1 -0
- package/server/dist/modules/setting/setting.module.d.ts +2 -0
- package/server/dist/modules/setting/setting.module.js +28 -0
- package/server/dist/modules/setting/setting.module.js.map +1 -0
- package/server/dist/modules/setting/setting.service.d.ts +10 -0
- package/server/dist/modules/setting/setting.service.js +106 -0
- package/server/dist/modules/setting/setting.service.js.map +1 -0
- package/server/dist/modules/smtp/mail.util.d.ts +6 -0
- package/server/dist/modules/smtp/mail.util.js +33 -0
- package/server/dist/modules/smtp/mail.util.js.map +1 -0
- package/server/dist/modules/smtp/smtp.controller.d.ts +9 -0
- package/server/dist/modules/smtp/smtp.controller.js +69 -0
- package/server/dist/modules/smtp/smtp.controller.js.map +1 -0
- package/server/dist/modules/smtp/smtp.entity.d.ts +9 -0
- package/server/dist/modules/smtp/smtp.entity.js +60 -0
- package/server/dist/modules/smtp/smtp.entity.js.map +1 -0
- package/server/dist/modules/smtp/smtp.module.d.ts +2 -0
- package/server/dist/modules/smtp/smtp.module.js +28 -0
- package/server/dist/modules/smtp/smtp.module.js.map +1 -0
- package/server/dist/modules/smtp/smtp.service.d.ts +11 -0
- package/server/dist/modules/smtp/smtp.service.js +83 -0
- package/server/dist/modules/smtp/smtp.service.js.map +1 -0
- package/server/dist/modules/tag/tag.controller.d.ts +12 -0
- package/server/dist/modules/tag/tag.controller.js +101 -0
- package/server/dist/modules/tag/tag.controller.js.map +1 -0
- package/server/dist/modules/tag/tag.entity.d.ts +9 -0
- package/server/dist/modules/tag/tag.entity.js +59 -0
- package/server/dist/modules/tag/tag.entity.js.map +1 -0
- package/server/dist/modules/tag/tag.module.d.ts +2 -0
- package/server/dist/modules/tag/tag.module.js +27 -0
- package/server/dist/modules/tag/tag.module.js.map +1 -0
- package/server/dist/modules/tag/tag.service.d.ts +13 -0
- package/server/dist/modules/tag/tag.service.js +104 -0
- package/server/dist/modules/tag/tag.service.js.map +1 -0
- package/server/dist/modules/user/user.controller.d.ts +13 -0
- package/server/dist/modules/user/user.controller.js +115 -0
- package/server/dist/modules/user/user.controller.js.map +1 -0
- package/server/dist/modules/user/user.entity.d.ts +15 -0
- package/server/dist/modules/user/user.entity.js +96 -0
- package/server/dist/modules/user/user.entity.js.map +1 -0
- package/server/dist/modules/user/user.module.d.ts +2 -0
- package/server/dist/modules/user/user.module.js +28 -0
- package/server/dist/modules/user/user.module.js.map +1 -0
- package/server/dist/modules/user/user.service.d.ts +16 -0
- package/server/dist/modules/user/user.service.js +152 -0
- package/server/dist/modules/user/user.service.js.map +1 -0
- package/server/dist/modules/view/view.controller.d.ts +11 -0
- package/server/dist/modules/view/view.controller.js +92 -0
- package/server/dist/modules/view/view.controller.js.map +1 -0
- package/server/dist/modules/view/view.entity.d.ts +14 -0
- package/server/dist/modules/view/view.entity.js +88 -0
- package/server/dist/modules/view/view.entity.js.map +1 -0
- package/server/dist/modules/view/view.module.d.ts +2 -0
- package/server/dist/modules/view/view.module.js +27 -0
- package/server/dist/modules/view/view.module.js.map +1 -0
- package/server/dist/modules/view/view.service.d.ts +11 -0
- package/server/dist/modules/view/view.service.js +89 -0
- package/server/dist/modules/view/view.service.js.map +1 -0
- package/server/dist/modules/webhook/webhook.controller.d.ts +12 -0
- package/server/dist/modules/webhook/webhook.controller.js +63 -0
- package/server/dist/modules/webhook/webhook.controller.js.map +1 -0
- package/server/dist/modules/webhook/webhook.entity.d.ts +9 -0
- package/server/dist/modules/webhook/webhook.entity.js +54 -0
- package/server/dist/modules/webhook/webhook.entity.js.map +1 -0
- package/server/dist/modules/webhook/webhook.module.d.ts +2 -0
- package/server/dist/modules/webhook/webhook.module.js +27 -0
- package/server/dist/modules/webhook/webhook.module.js.map +1 -0
- package/server/dist/modules/webhook/webhook.service.d.ts +16 -0
- package/server/dist/modules/webhook/webhook.service.js +97 -0
- package/server/dist/modules/webhook/webhook.service.js.map +1 -0
- package/server/dist/public/favicon.png +0 -0
- package/server/dist/public/index.html +439 -0
- package/server/dist/public/swagger/custom.css +11 -0
- package/server/dist/starter.d.ts +1 -0
- package/server/dist/starter.js +84 -0
- package/server/dist/starter.js.map +1 -0
- package/server/dist/tsconfig.build.tsbuildinfo +16966 -0
- package/server/dist/utils/date.util.d.ts +1 -0
- package/server/dist/utils/date.util.js +13 -0
- package/server/dist/utils/date.util.js.map +1 -0
- package/server/dist/utils/ip.util.d.ts +2 -0
- package/server/dist/utils/ip.util.js +27 -0
- package/server/dist/utils/ip.util.js.map +1 -0
- package/server/dist/utils/markdown.util.d.ts +4 -0
- package/server/dist/utils/markdown.util.js +42 -0
- package/server/dist/utils/markdown.util.js.map +1 -0
- package/server/dist/utils/oss/aliyun-oss-client.d.ts +6 -0
- package/server/dist/utils/oss/aliyun-oss-client.js +28 -0
- package/server/dist/utils/oss/aliyun-oss-client.js.map +1 -0
- package/server/dist/utils/oss/oss-client.d.ts +6 -0
- package/server/dist/utils/oss/oss-client.js +10 -0
- package/server/dist/utils/oss/oss-client.js.map +1 -0
- package/server/dist/utils/oss.util.d.ts +13 -0
- package/server/dist/utils/oss.util.js +49 -0
- package/server/dist/utils/oss.util.js.map +1 -0
- package/server/dist/utils/ua.util.d.ts +9 -0
- package/server/dist/utils/ua.util.js +36 -0
- package/server/dist/utils/ua.util.js.map +1 -0
- package/server/dist/utils/uniqueid.util.d.ts +1 -0
- package/server/dist/utils/uniqueid.util.js +9 -0
- package/server/dist/utils/uniqueid.util.js.map +1 -0
- package/server/dist/utils/upload.util.d.ts +5 -0
- package/server/dist/utils/upload.util.js +34 -0
- package/server/dist/utils/upload.util.js.map +1 -0
- package/server/dist/utils/user.util.d.ts +1 -0
- package/server/dist/utils/user.util.js +18 -0
- package/server/dist/utils/user.util.js.map +1 -0
- package/server/ecosystem.config.js +18 -0
- package/server/package.json +146 -0
- package/server/public/favicon.png +0 -0
- package/server/public/index.html +439 -0
- package/server/public/swagger/custom.css +11 -0
- package/templates/config.default.json +12 -0
- package/templates/docker-compose.prod.yml +56 -0
- package/templates/docker-compose.yml +27 -0
- package/templates/env.default +11 -0
- package/templates/package.json +10 -0
- package/ui/banner.js +22 -0
- package/ui/interactive.js +168 -0
- package/ui/theme.js +25 -0
- package/CONTRIBUTING.md +0 -122
- package/client/bin/reactpress-client.js +0 -190
- package/scripts/build-packages.js +0 -271
- package/scripts/deploy.sh +0 -25
- package/scripts/dev.js +0 -39
- package/scripts/reactpress-server-old.js +0 -130
- package/scripts/reactpress-server.js +0 -666
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
const inquirer = require('inquirer');
|
|
2
|
+
const open = require('open');
|
|
3
|
+
const { printBanner } = require('./banner');
|
|
4
|
+
const { brand, label } = require('./theme');
|
|
5
|
+
const { ensureOriginalCwd } = require('../lib/root');
|
|
6
|
+
const { ensureProjectEnvironment } = require('../lib/bootstrap');
|
|
7
|
+
const { runDev } = require('../lib/dev');
|
|
8
|
+
const { runApiDev } = require('../lib/api-dev');
|
|
9
|
+
const { runLifecycleCommand } = require('../lib/lifecycle');
|
|
10
|
+
const { runDockerCommand } = require('../lib/docker');
|
|
11
|
+
const { printUnifiedStatus } = require('../lib/status');
|
|
12
|
+
const { runDoctor } = require('../lib/doctor');
|
|
13
|
+
const { runBuild } = require('../lib/build');
|
|
14
|
+
const { runNodeScript } = require('../lib/spawn');
|
|
15
|
+
const { getClientBin } = require('../lib/paths');
|
|
16
|
+
const { loadClientSiteUrl } = require('../lib/http');
|
|
17
|
+
const { t } = require('../lib/i18n');
|
|
18
|
+
|
|
19
|
+
function getMenuActions() {
|
|
20
|
+
return [
|
|
21
|
+
{ name: t('menu.dev'), value: 'dev' },
|
|
22
|
+
{ name: t('menu.init'), value: 'init' },
|
|
23
|
+
{ name: t('menu.status'), value: 'status' },
|
|
24
|
+
{ name: t('menu.doctor'), value: 'doctor' },
|
|
25
|
+
new inquirer.Separator(),
|
|
26
|
+
{ name: t('menu.devApi'), value: 'dev:api' },
|
|
27
|
+
{ name: t('menu.devClient'), value: 'dev:client' },
|
|
28
|
+
{ name: t('menu.serverStart'), value: 'server:start' },
|
|
29
|
+
{ name: t('menu.serverStop'), value: 'server:stop' },
|
|
30
|
+
{ name: t('menu.serverRestart'), value: 'server:restart' },
|
|
31
|
+
new inquirer.Separator(),
|
|
32
|
+
{ name: t('menu.build'), value: 'build' },
|
|
33
|
+
{ name: t('menu.dockerStart'), value: 'docker:start' },
|
|
34
|
+
{ name: t('menu.dockerUp'), value: 'docker:up' },
|
|
35
|
+
{ name: t('menu.dockerStop'), value: 'docker:stop' },
|
|
36
|
+
new inquirer.Separator(),
|
|
37
|
+
{ name: t('menu.openAdmin'), value: 'open:admin' },
|
|
38
|
+
{ name: t('menu.publish'), value: 'publish' },
|
|
39
|
+
{ name: t('menu.exit'), value: 'exit' },
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
async function runMenuAction(action, projectRoot) {
|
|
44
|
+
switch (action) {
|
|
45
|
+
case 'dev':
|
|
46
|
+
console.log(label(t('menu.startingDev')));
|
|
47
|
+
await runDev(projectRoot);
|
|
48
|
+
return false;
|
|
49
|
+
case 'init': {
|
|
50
|
+
console.log(label(t('menu.initProject')));
|
|
51
|
+
const result = await ensureProjectEnvironment(projectRoot);
|
|
52
|
+
console.log(brand.success(result.message || t('menu.done')));
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
case 'status':
|
|
56
|
+
await printUnifiedStatus(projectRoot);
|
|
57
|
+
return true;
|
|
58
|
+
case 'doctor': {
|
|
59
|
+
const code = await runDoctor(projectRoot);
|
|
60
|
+
if (code !== 0) process.exit(code);
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
case 'dev:api':
|
|
64
|
+
await runApiDev(projectRoot);
|
|
65
|
+
return false;
|
|
66
|
+
case 'dev:client':
|
|
67
|
+
await runNodeScript(getClientBin(), [], { cwd: projectRoot });
|
|
68
|
+
return false;
|
|
69
|
+
case 'server:start': {
|
|
70
|
+
const code = await runLifecycleCommand('start', projectRoot);
|
|
71
|
+
if (code !== 0) process.exit(code);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
case 'server:stop':
|
|
75
|
+
await runLifecycleCommand('stop', projectRoot);
|
|
76
|
+
return true;
|
|
77
|
+
case 'server:restart': {
|
|
78
|
+
const code = await runLifecycleCommand('restart', projectRoot);
|
|
79
|
+
if (code !== 0) process.exit(code);
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
case 'build':
|
|
83
|
+
await runBuild('all', projectRoot);
|
|
84
|
+
return true;
|
|
85
|
+
case 'docker:start':
|
|
86
|
+
await runDockerCommand('start', projectRoot);
|
|
87
|
+
return false;
|
|
88
|
+
case 'docker:up':
|
|
89
|
+
await runDockerCommand('up', projectRoot);
|
|
90
|
+
return true;
|
|
91
|
+
case 'docker:stop':
|
|
92
|
+
await runDockerCommand('down', projectRoot);
|
|
93
|
+
return true;
|
|
94
|
+
case 'open:admin': {
|
|
95
|
+
const url = loadClientSiteUrl(projectRoot);
|
|
96
|
+
console.log(label(t('menu.opening', { url })));
|
|
97
|
+
await open(url);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
case 'publish': {
|
|
101
|
+
const prev = process.argv.slice();
|
|
102
|
+
process.argv = [process.argv[0], process.argv[1], '--publish'];
|
|
103
|
+
await require('../lib/publish').main();
|
|
104
|
+
process.argv = prev;
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
107
|
+
case 'exit':
|
|
108
|
+
console.log(brand.muted(t('menu.goodbye')));
|
|
109
|
+
return false;
|
|
110
|
+
default:
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async function runInteractiveLoop() {
|
|
116
|
+
const projectRoot = ensureOriginalCwd();
|
|
117
|
+
printBanner();
|
|
118
|
+
|
|
119
|
+
let loop = true;
|
|
120
|
+
while (loop) {
|
|
121
|
+
const { action } = await inquirer.prompt([
|
|
122
|
+
{
|
|
123
|
+
type: 'list',
|
|
124
|
+
name: 'action',
|
|
125
|
+
message: t('menu.prompt'),
|
|
126
|
+
pageSize: 14,
|
|
127
|
+
choices: getMenuActions(),
|
|
128
|
+
},
|
|
129
|
+
]);
|
|
130
|
+
|
|
131
|
+
if (action === 'exit') {
|
|
132
|
+
console.log(brand.muted(t('menu.goodbye')));
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
try {
|
|
137
|
+
const stay = await runMenuAction(action, projectRoot);
|
|
138
|
+
if (!stay) {
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (action !== 'status') {
|
|
143
|
+
const { again } = await inquirer.prompt([
|
|
144
|
+
{
|
|
145
|
+
type: 'confirm',
|
|
146
|
+
name: 'again',
|
|
147
|
+
message: t('menu.back'),
|
|
148
|
+
default: true,
|
|
149
|
+
},
|
|
150
|
+
]);
|
|
151
|
+
loop = again;
|
|
152
|
+
}
|
|
153
|
+
} catch (err) {
|
|
154
|
+
console.error(brand.error(` ${err.message || err}`));
|
|
155
|
+
const { retry } = await inquirer.prompt([
|
|
156
|
+
{
|
|
157
|
+
type: 'confirm',
|
|
158
|
+
name: 'retry',
|
|
159
|
+
message: t('menu.retry'),
|
|
160
|
+
default: true,
|
|
161
|
+
},
|
|
162
|
+
]);
|
|
163
|
+
loop = retry;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
module.exports = { runInteractiveLoop, runMenuAction };
|
package/ui/theme.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const chalk = require('chalk');
|
|
2
|
+
|
|
3
|
+
const brand = {
|
|
4
|
+
primary: chalk.hex('#6366f1'),
|
|
5
|
+
accent: chalk.hex('#22d3ee'),
|
|
6
|
+
success: chalk.green,
|
|
7
|
+
warn: chalk.yellow,
|
|
8
|
+
error: chalk.red,
|
|
9
|
+
muted: chalk.gray,
|
|
10
|
+
bold: chalk.bold,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
function label(text) {
|
|
14
|
+
return brand.primary(`› ${text}`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function ok(text) {
|
|
18
|
+
return brand.success(`✓ ${text}`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function fail(text) {
|
|
22
|
+
return brand.error(`✗ ${text}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = { brand, label, ok, fail };
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# Contributing to ReactPress
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to ReactPress! We welcome contributions from the community to help improve the project.
|
|
4
|
-
|
|
5
|
-
## Code of Conduct
|
|
6
|
-
|
|
7
|
-
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md) to ensure a welcoming and inclusive environment for all contributors.
|
|
8
|
-
|
|
9
|
-
## Getting Started
|
|
10
|
-
|
|
11
|
-
1. Fork the repository
|
|
12
|
-
2. Clone your fork: `git clone https://github.com/your-username/reactpress.git`
|
|
13
|
-
3. Create a new branch: `git checkout -b feature/your-feature-name`
|
|
14
|
-
4. Make your changes
|
|
15
|
-
5. Commit your changes: `git commit -m "Add your feature description"`
|
|
16
|
-
6. Push to your fork: `git push origin feature/your-feature-name`
|
|
17
|
-
7. Create a pull request
|
|
18
|
-
|
|
19
|
-
## Development Setup
|
|
20
|
-
|
|
21
|
-
### Prerequisites
|
|
22
|
-
|
|
23
|
-
- Node.js >= 16.5.0
|
|
24
|
-
- pnpm >= 7.0.0
|
|
25
|
-
- MySQL 5.7 or higher
|
|
26
|
-
|
|
27
|
-
### Installation
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
# Clone the repository
|
|
31
|
-
git clone https://github.com/fecommunity/reactpress.git
|
|
32
|
-
cd reactpress
|
|
33
|
-
|
|
34
|
-
# Install dependencies
|
|
35
|
-
pnpm install
|
|
36
|
-
|
|
37
|
-
# Start development servers
|
|
38
|
-
pnpm run dev
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Project Structure
|
|
42
|
-
|
|
43
|
-
ReactPress follows a monorepo structure:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
reactpress/
|
|
47
|
-
├── client/ # Next.js frontend application
|
|
48
|
-
├── server/ # NestJS backend API
|
|
49
|
-
├── toolkit/ # Auto-generated API client SDK
|
|
50
|
-
├── templates/ # Project templates
|
|
51
|
-
├── scripts/ # Build and deployment scripts
|
|
52
|
-
└── docs/ # Documentation
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Development Workflow
|
|
56
|
-
|
|
57
|
-
### Running Services
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# Start both client and server in development mode
|
|
61
|
-
pnpm run dev
|
|
62
|
-
|
|
63
|
-
# Start only the server
|
|
64
|
-
pnpm run dev:server
|
|
65
|
-
|
|
66
|
-
# Start only the client
|
|
67
|
-
pnpm run dev:client
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Building Packages
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Build all packages
|
|
74
|
-
pnpm run build
|
|
75
|
-
|
|
76
|
-
# Build specific packages
|
|
77
|
-
pnpm run build:client
|
|
78
|
-
pnpm run build:server
|
|
79
|
-
pnpm run build:toolkit
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Testing
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Run all tests
|
|
86
|
-
pnpm test
|
|
87
|
-
|
|
88
|
-
# Run tests for specific package
|
|
89
|
-
pnpm test --dir client
|
|
90
|
-
pnpm test --dir server
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Code Style
|
|
94
|
-
|
|
95
|
-
- Follow the existing code style in the project
|
|
96
|
-
- Use TypeScript for type safety
|
|
97
|
-
- Write clear, concise commit messages
|
|
98
|
-
- Update documentation as needed
|
|
99
|
-
|
|
100
|
-
## Pull Request Process
|
|
101
|
-
|
|
102
|
-
1. Ensure your changes are well-tested
|
|
103
|
-
2. Update the README.md if you've changed functionality
|
|
104
|
-
3. Create a pull request with a clear title and description
|
|
105
|
-
4. Link any related issues in your pull request description
|
|
106
|
-
5. Be responsive to feedback during the review process
|
|
107
|
-
|
|
108
|
-
## Reporting Issues
|
|
109
|
-
|
|
110
|
-
If you find a bug or have a feature request, please [create an issue](https://github.com/fecommunity/reactpress/issues/new) on GitHub. Include as much detail as possible to help us understand and reproduce the problem.
|
|
111
|
-
|
|
112
|
-
## Publishing Packages
|
|
113
|
-
|
|
114
|
-
To publish packages to npm:
|
|
115
|
-
|
|
116
|
-
1. Ensure you're logged into npm: `pnpm login`
|
|
117
|
-
2. Run the publish script: `pnpm run publish`
|
|
118
|
-
3. Follow the interactive prompts to select packages and version increments
|
|
119
|
-
|
|
120
|
-
## License
|
|
121
|
-
|
|
122
|
-
By contributing to ReactPress, you agree that your contributions will be licensed under the MIT License.
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* ReactPress Client CLI Entry Point
|
|
5
|
-
* This script allows starting the ReactPress client via npx
|
|
6
|
-
* Supports both regular and PM2 startup modes
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const path = require('path');
|
|
10
|
-
const fs = require('fs');
|
|
11
|
-
const { spawn, spawnSync } = require('child_process');
|
|
12
|
-
|
|
13
|
-
// Capture the original working directory where npx was executed
|
|
14
|
-
// BUT prioritize the REACTPRESS_ORIGINAL_CWD environment variable if it exists
|
|
15
|
-
// This ensures consistency when running via pnpm dev from root directory
|
|
16
|
-
const originalCwd = process.env.REACTPRESS_ORIGINAL_CWD || process.cwd();
|
|
17
|
-
|
|
18
|
-
// Get command line arguments
|
|
19
|
-
const args = process.argv.slice(2);
|
|
20
|
-
const usePM2 = args.includes('--pm2');
|
|
21
|
-
const showHelp = args.includes('--help') || args.includes('-h');
|
|
22
|
-
|
|
23
|
-
// Show help if requested
|
|
24
|
-
if (showHelp) {
|
|
25
|
-
console.log(`
|
|
26
|
-
ReactPress Client - Next.js-based frontend for ReactPress CMS
|
|
27
|
-
|
|
28
|
-
Usage:
|
|
29
|
-
npx @fecommunity/reactpress-client [options]
|
|
30
|
-
|
|
31
|
-
Options:
|
|
32
|
-
--pm2 Start client with PM2 process manager
|
|
33
|
-
--help, -h Show this help message
|
|
34
|
-
|
|
35
|
-
Examples:
|
|
36
|
-
npx @fecommunity/reactpress-client # Start client normally
|
|
37
|
-
npx @fecommunity/reactpress-client --pm2 # Start client with PM2
|
|
38
|
-
npx @fecommunity/reactpress-client --help # Show this help message
|
|
39
|
-
`);
|
|
40
|
-
process.exit(0);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Get the directory where this script is located
|
|
44
|
-
const binDir = __dirname;
|
|
45
|
-
const clientDir = path.join(binDir, '..');
|
|
46
|
-
const nextDir = path.join(clientDir, '.next');
|
|
47
|
-
|
|
48
|
-
// Function to check if PM2 is installed
|
|
49
|
-
function isPM2Installed() {
|
|
50
|
-
try {
|
|
51
|
-
require.resolve('pm2');
|
|
52
|
-
return true;
|
|
53
|
-
} catch (e) {
|
|
54
|
-
// Check if PM2 is installed globally
|
|
55
|
-
try {
|
|
56
|
-
spawnSync('pm2', ['--version'], { stdio: 'ignore' });
|
|
57
|
-
return true;
|
|
58
|
-
} catch (e) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Function to install PM2
|
|
65
|
-
function installPM2() {
|
|
66
|
-
console.log('[ReactPress Client] Installing PM2...');
|
|
67
|
-
const installResult = spawnSync('npm', ['install', 'pm2', '--no-save'], {
|
|
68
|
-
stdio: 'inherit',
|
|
69
|
-
cwd: clientDir
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
if (installResult.status !== 0) {
|
|
73
|
-
console.error('[ReactPress Client] Failed to install PM2');
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return true;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
// Function to start with PM2
|
|
81
|
-
function startWithPM2() {
|
|
82
|
-
// Check if PM2 is installed
|
|
83
|
-
if (!isPM2Installed()) {
|
|
84
|
-
// Try to install PM2
|
|
85
|
-
if (!installPM2()) {
|
|
86
|
-
console.error('[ReactPress Client] Cannot start with PM2');
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Check if the client is built
|
|
92
|
-
if (!fs.existsSync(nextDir)) {
|
|
93
|
-
console.log('[ReactPress Client] Client not built yet. Building...');
|
|
94
|
-
|
|
95
|
-
// Try to build the client
|
|
96
|
-
const buildResult = spawnSync('npm', ['run', 'build'], {
|
|
97
|
-
stdio: 'inherit',
|
|
98
|
-
cwd: clientDir
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
if (buildResult.status !== 0) {
|
|
102
|
-
console.error('[ReactPress Client] Failed to build client');
|
|
103
|
-
process.exit(1);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
console.log('[ReactPress Client] Starting with PM2...');
|
|
108
|
-
|
|
109
|
-
// Use PM2 to start the Next.js production server
|
|
110
|
-
let pm2Command = 'pm2';
|
|
111
|
-
try {
|
|
112
|
-
// Try to resolve PM2 path
|
|
113
|
-
pm2Command = path.join(clientDir, 'node_modules', '.bin', 'pm2');
|
|
114
|
-
if (!fs.existsSync(pm2Command)) {
|
|
115
|
-
pm2Command = 'pm2';
|
|
116
|
-
}
|
|
117
|
-
} catch (e) {
|
|
118
|
-
pm2Command = 'pm2';
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// Start with PM2 using direct command
|
|
122
|
-
const pm2 = spawn(pm2Command, ['start', 'npm', '--name', 'reactpress-client', '--', 'run', 'start'], {
|
|
123
|
-
stdio: 'inherit',
|
|
124
|
-
cwd: clientDir
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
pm2.on('close', (code) => {
|
|
128
|
-
console.log(`[ReactPress Client] PM2 process exited with code ${code}`);
|
|
129
|
-
process.exit(code);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
pm2.on('error', (error) => {
|
|
133
|
-
console.error('[ReactPress Client] Failed to start with PM2:', error);
|
|
134
|
-
process.exit(1);
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Function to start with regular Node.js (npm start)
|
|
139
|
-
function startWithNode() {
|
|
140
|
-
// Check if the app is built
|
|
141
|
-
if (!fs.existsSync(nextDir)) {
|
|
142
|
-
console.log('[ReactPress Client] Client not built yet. Building...');
|
|
143
|
-
|
|
144
|
-
// Try to build the client
|
|
145
|
-
const buildResult = spawnSync('npm', ['run', 'build'], {
|
|
146
|
-
stdio: 'inherit',
|
|
147
|
-
cwd: clientDir
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
if (buildResult.status !== 0) {
|
|
151
|
-
console.error('[ReactPress Client] Failed to build client');
|
|
152
|
-
process.exit(1);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// ONLY set the environment variable if it's not already set
|
|
157
|
-
// This preserves the value set by set-env.js when running pnpm dev from root
|
|
158
|
-
if (!process.env.REACTPRESS_ORIGINAL_CWD) {
|
|
159
|
-
process.env.REACTPRESS_ORIGINAL_CWD = originalCwd;
|
|
160
|
-
} else {
|
|
161
|
-
console.log(`[ReactPress Client] Using existing REACTPRESS_ORIGINAL_CWD: ${process.env.REACTPRESS_ORIGINAL_CWD}`);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
// Change to the client directory
|
|
165
|
-
process.chdir(clientDir);
|
|
166
|
-
|
|
167
|
-
// Start with npm start
|
|
168
|
-
console.log('[ReactPress Client] Starting with npm start...');
|
|
169
|
-
const npmStart = spawn('npm', ['start'], {
|
|
170
|
-
stdio: 'inherit',
|
|
171
|
-
cwd: clientDir
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
npmStart.on('close', (code) => {
|
|
175
|
-
console.log(`[ReactPress Client] npm start process exited with code ${code}`);
|
|
176
|
-
process.exit(code);
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
npmStart.on('error', (error) => {
|
|
180
|
-
console.error('[ReactPress Client] Failed to start with npm start:', error);
|
|
181
|
-
process.exit(1);
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Main execution
|
|
186
|
-
if (usePM2) {
|
|
187
|
-
startWithPM2();
|
|
188
|
-
} else {
|
|
189
|
-
startWithNode();
|
|
190
|
-
}
|