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

+ 9 - 2
packages/app/package.json

@@ -4,13 +4,14 @@
   "license": "MIT",
   "scripts": {
     "build": "env-cmd -f config/env.prod.js webpack --config config/webpack.prod.js --profile --bail",
-    "prebuild": "node bin/generate-plugin-definitions-source.js && node bin/download-cdn-resources.js",
+    "prebuild": "yarn ts-node bin/generate-plugin-definitions-source.ts && node bin/download-cdn-resources.js",
     "lint:js:fix": "eslint \"**/*.{js,jsx}\" --fix",
     "lint:js": "eslint \"**/*.{js,jsx}\"",
     "lint:styles:fix": "stylelint --fix src/**/*.scss",
     "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"
+    "lint": "npm-run-all -p lint:js lint:styles lint:swagger2openapi",
+    "ts-node": "ts-node -r tsconfig-paths/register -r dotenv-flow/config"
   },
   "// comments for dependencies": {
     "openid-client": "Node.js 12 or higher is required for openid-client@3 and above.",
@@ -217,6 +218,12 @@
     "terser-webpack-plugin": "^4.1.0",
     "throttle-debounce": "^2.0.0",
     "toastr": "^2.1.2",
+    "ts-jest": "^26.5.4",
+    "ts-node": "^9.1.1",
+    "ts-node-dev": "^1.1.6",
+    "tsc-alias": "^1.2.9",
+    "tsconfig-paths": "^3.9.0",
+    "typescript": "^4.2.3",
     "unstated": "^2.1.1",
     "webpack": "^4.39.3",
     "webpack-assets-manifest": "^3.1.1",

+ 10 - 6
packages/app/src/server/plugins/plugin-utils.js

@@ -1,10 +1,13 @@
-const path = require('path');
+import loggerFactory from '~/utils/logger';
+import { resolveFromRoot } from '~/utils/project-dir-utils';
+
 const fs = require('graceful-fs');
-const logger = require('@alias/logger')('growi:plugins:plugin-utils');
 const packageInstalledVersionSync = require('package-installed-version-sync');
 
 const PluginUtilsV2 = require('./plugin-utils-v2');
 
+const logger = loggerFactory('growi:plugins:plugin-utils');
+
 const pluginUtilsV2 = new PluginUtilsV2();
 
 class PluginUtils {
@@ -56,8 +59,8 @@ class PluginUtils {
    *
    * @memberOf PluginService
    */
-  listPlugins(rootDir) {
-    const packagePath = path.join(rootDir, 'packages/app/package.json');
+  listPlugins() {
+    const packagePath = resolveFromRoot('package.json');
 
     // Make sure package.json exists
     if (!fs.existsSync(packagePath)) {
@@ -89,11 +92,12 @@ class PluginUtils {
    *
    * @memberOf PluginService
    */
-  listPluginNames(rootDir) {
-    const plugins = this.listPlugins(rootDir);
+  listPluginNames() {
+    const plugins = this.listPlugins();
     return plugins.map((plugin) => { return plugin.name });
   }
 
 }
 
 module.exports = PluginUtils;
+export default PluginUtils;

+ 4 - 1
packages/app/src/server/plugins/plugin.service.js

@@ -1,6 +1,9 @@
-const logger = require('@alias/logger')('growi:plugins:PluginService');
+import loggerFactory from '~/utils/logger';
+
 const PluginUtils = require('./plugin-utils');
 
+const logger = loggerFactory('growi:plugins:PluginService');
+
 class PluginService {
 
   constructor(crowi, app) {