Yuki Takei 4 лет назад
Родитель
Сommit
1b81711c69

+ 3 - 4
packages/app/package.json

@@ -5,7 +5,7 @@
   "scripts": {
     "build": "env-cmd -f config/env.prod.js webpack --config config/webpack.prod.js --profile --bail",
     "dev:build": "env-cmd -f config/env.dev.js webpack --config config/webpack.dev.js --progress --watch",
-    "dev:server": "env-cmd -f config/env.dev.js yarn ts-node-dev src/server/app.js --expose_gc --inspect",
+    "dev:server": "env-cmd -f config/env.dev.js yarn ts-node-dev src/server/app.ts --expose_gc --inspect",
     "dev": "npm-run-all -p dev:*",
     "prebuild": "yarn ts-node bin/generate-plugin-definitions-source.ts && yarn ts-node bin/download-cdn-resources.ts",
     "lint:js:fix": "eslint \"**/*.{js,jsx}\" --fix",
@@ -14,8 +14,8 @@
     "lint:styles": "stylelint src/**/*.scss",
     "lint:swagger2openapi": "node node_modules/swagger2openapi/oas-validate tmp/swagger.json",
     "lint": "npm-run-all -p lint:js lint:styles lint:swagger2openapi",
-    "ts-node": "ts-node -r tsconfig-paths/register -r dotenv-flow/config",
-    "ts-node-dev": "ts-node-dev -r tsconfig-paths/register -r dotenv-flow/config"
+    "ts-node": "ts-node -r tsconfig-paths/register -r dotenv-flow/config --transpile-only",
+    "ts-node-dev": "ts-node-dev -r tsconfig-paths/register -r dotenv-flow/config --transpile-only"
   },
   "// comments for dependencies": {
     "openid-client": "Node.js 12 or higher is required for openid-client@3 and above.",
@@ -79,7 +79,6 @@
     "method-override": "^3.0.0",
     "migrate-mongo": "^8.2.2",
     "mkdirp": "^1.0.3",
-    "module-alias": "^2.0.6",
     "mongoose": "5.12.13",
     "mongoose-gridfs": "^1.2.42",
     "mongoose-paginate-v2": "^1.3.9",

+ 20 - 17
packages/app/src/server/app.js → packages/app/src/server/app.ts

@@ -1,21 +1,17 @@
-/**
- * Growi::app.js
- *
- * @package growi
- * @author  Yuki Takei <yuki@weseek.co.jp>
- */
+import Logger from 'bunyan';
 
-require('module-alias/register');
+import loggerFactory from '~/utils/logger';
+import { hasProcessFlag } from '~/utils/process-utils';
 
-const logger = require('@alias/logger')('growi');
-const helpers = require('@commons/util/helpers');
-const growi = new (require('./crowi'))(helpers.root());
+import Crowi from './crowi';
+
+const logger: Logger = loggerFactory('growi');
 
 
 /** **********************************
  *          Main Process
  ********************************** */
-process.on('uncaughtException', (err) => {
+process.on('uncaughtException', (err?: Error) => {
   logger.error('Uncaught Exception: ', err);
 });
 
@@ -23,17 +19,24 @@ process.on('unhandledRejection', (reason, p) => {
   logger.error('Unhandled Rejection: Promise:', p, 'Reason:', reason);
 });
 
-growi.start()
-  .then((server) => {
-    if (helpers.hasProcessFlag('ci')) {
+async function main() {
+  try {
+    // eslint-disable-next-line @typescript-eslint/no-var-requires
+    const growi = new Crowi();
+    const server = await growi.start();
+
+    if (hasProcessFlag('ci')) {
       logger.info('"--ci" flag is detected. Exit process.');
       server.close(() => {
         process.exit();
       });
     }
-  })
-  .catch((err) => {
+  }
+  catch (err) {
     logger.error('An error occurred, unable to start the server');
     logger.error(err);
     process.exit(1);
-  });
+  }
+}
+
+main();

+ 9 - 0
packages/app/tsconfig.base.json

@@ -0,0 +1,9 @@
+{
+  "extends": "../../tsconfig.base.json",
+  "compilerOptions": {
+  },
+  "exclude": [
+    "node_modules",
+    "**/*.test.ts"
+  ]
+}

+ 9 - 7
packages/app/tsconfig.build.json

@@ -1,15 +1,17 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "./tsconfig.base.json",
   "compilerOptions": {
     "module": "esnext",
     "jsx": "react",
     "noFallthroughCasesInSwitch": true,
     "noUnusedLocals": true,
     "noUnusedParameters": true,
-    "strict": true
-  },
-  "exclude": [
-    "node_modules",
-    "**/*.test.ts"
-  ]
+    "strict": true,
+    "paths": {
+      "~/*": ["./src/*"],
+      "^/*": ["./*"],
+      "@alias/logger": ["./src/server/utils/logger"],
+      "debug": ["./src/server/utils/logger/alias-for-debug"]
+    }
+  }
 }

+ 3 - 2
packages/app/tsconfig.json

@@ -1,12 +1,13 @@
 {
-  "extends": "../../tsconfig.base.json",
+  "extends": "./tsconfig.base.json",
   "compilerOptions": {
     "baseUrl": ".",
     "paths": {
       "~/*": ["./src/*"],
       "^/*": ["./*"],
       "@growi/*": ["./packages/*/src"],
-      "@alias/logger": ["./src/server/utils/logger"]
+      "@alias/logger": ["./src/server/utils/logger"],
+      "debug": ["./src/server/utils/logger/alias-for-debug"]
     }
   }
 }