Просмотр исходного кода

apply rollup-plugin-node-externals to @growi/remark-attachment-refs

Yuki Takei 2 лет назад
Родитель
Сommit
f62bd995aa

+ 1 - 1
apps/app/src/client/services/renderer/renderer.tsx

@@ -1,7 +1,7 @@
 import assert from 'assert';
 import assert from 'assert';
 
 
 import { isClient } from '@growi/core/dist/utils/browser-utils';
 import { isClient } from '@growi/core/dist/utils/browser-utils';
-import * as refsGrowiDirective from '@growi/remark-attachment-refs/dist/client/index.mjs';
+import * as refsGrowiDirective from '@growi/remark-attachment-refs/dist/client';
 import * as drawio from '@growi/remark-drawio';
 import * as drawio from '@growi/remark-drawio';
 // eslint-disable-next-line import/extensions
 // eslint-disable-next-line import/extensions
 import * as lsxGrowiDirective from '@growi/remark-lsx/dist/client';
 import * as lsxGrowiDirective from '@growi/remark-lsx/dist/client';

+ 25 - 4
packages/remark-attachment-refs/package.json

@@ -7,12 +7,24 @@
     "growi",
     "growi",
     "growi-plugin"
     "growi-plugin"
   ],
   ],
-  "main": "dist/index.js",
-  "module": "dist/index.mjs",
-  "types": "dist/index.d.ts",
   "files": [
   "files": [
     "dist"
     "dist"
   ],
   ],
+  "type": "module",
+  "exports": {
+    "./dist/client": {
+      "require": "./dist/client/index.cjs",
+      "import": "./dist/client/index.js"
+    },
+    "./dist/client/*": {
+      "require": "./dist/client/*",
+      "import": "./dist/client/*"
+    },
+    "./dist/server": {
+      "require": "./dist/server/index.cjs",
+      "import": "./dist/server/index.js"
+    }
+  },
   "scripts": {
   "scripts": {
     "build": "run-p build:*",
     "build": "run-p build:*",
     "build:server": "vite build -c vite.server.config.ts",
     "build:server": "vite build -c vite.server.config.ts",
@@ -33,13 +45,22 @@
     "@growi/core": "link:../core",
     "@growi/core": "link:../core",
     "@growi/remark-growi-directive": "link:../remark-growi-directive",
     "@growi/remark-growi-directive": "link:../remark-growi-directive",
     "@growi/ui": "link:../ui",
     "@growi/ui": "link:../ui",
+    "axios": "^0.24.0",
     "bunyan": "^1.8.15",
     "bunyan": "^1.8.15",
     "hast-util-select": "^5.0.5",
     "hast-util-select": "^5.0.5",
-    "universal-bunyan": "^0.9.2"
+    "universal-bunyan": "^0.9.2",
+    "swr": "^2.0.3"
   },
   },
   "devDependencies": {
   "devDependencies": {
+    "csstype": "^3.1.2",
     "eslint-plugin-regex": "^1.8.0",
     "eslint-plugin-regex": "^1.8.0",
+    "hast-util-sanitize": "^4.1.0",
+    "hast-util-select": "^5.0.5",
     "npm-run-all": "^4.1.5",
     "npm-run-all": "^4.1.5",
+    "unified": "^10.1.2",
+    "unist-util-visit": "^4.0.0"
+  },
+  "peerDependencies": {
     "react": "^18.2.0",
     "react": "^18.2.0",
     "react-dom": "^18.2.0"
     "react-dom": "^18.2.0"
   }
   }

+ 6 - 0
packages/remark-attachment-refs/src/client/services/renderer/refs.ts

@@ -6,6 +6,10 @@ import type { Node as HastNode } from 'hast-util-select/lib/types';
 import { Plugin } from 'unified';
 import { Plugin } from 'unified';
 import { visit } from 'unist-util-visit';
 import { visit } from 'unist-util-visit';
 
 
+import loggerFactory from '../../../utils/logger';
+
+const logger = loggerFactory('growi:remark-attachment-refs:services:renderer:refs');
+
 const REF_SINGLE_NAME_PATTERN = new RegExp(/refimg|ref/);
 const REF_SINGLE_NAME_PATTERN = new RegExp(/refimg|ref/);
 const REF_MULTI_NAME_PATTERN = new RegExp(/refsimg|refs|gallery/);
 const REF_MULTI_NAME_PATTERN = new RegExp(/refsimg|refs|gallery/);
 
 
@@ -61,6 +65,8 @@ export const remarkPlugin: Plugin = function() {
           return;
           return;
         }
         }
 
 
+        logger.debug('a node detected', attributes);
+
         // kebab case to camel case
         // kebab case to camel case
         attributes.maxWidth = attributes['max-width'];
         attributes.maxWidth = attributes['max-width'];
         attributes.maxHeight = attributes['max-height'];
         attributes.maxHeight = attributes['max-height'];

+ 1 - 1
packages/remark-attachment-refs/src/server/routes/refs.ts

@@ -2,7 +2,7 @@ import { OptionParser } from '@growi/core';
 
 
 import loggerFactory from '../../utils/logger';
 import loggerFactory from '../../utils/logger';
 
 
-const logger = loggerFactory('growi-plugin:attachment-refs:routes:refs');
+const logger = loggerFactory('growi:remark-attachment-refs:routes:refs');
 
 
 
 
 const loginRequiredFallback = (req, res) => {
 const loginRequiredFallback = (req, res) => {

+ 12 - 12
packages/remark-attachment-refs/vite.client.config.ts

@@ -1,4 +1,5 @@
 import react from '@vitejs/plugin-react';
 import react from '@vitejs/plugin-react';
+import { nodeExternals } from 'rollup-plugin-node-externals';
 import { defineConfig } from 'vite';
 import { defineConfig } from 'vite';
 import dts from 'vite-plugin-dts';
 import dts from 'vite-plugin-dts';
 
 
@@ -6,7 +7,17 @@ import dts from 'vite-plugin-dts';
 export default defineConfig({
 export default defineConfig({
   plugins: [
   plugins: [
     react(),
     react(),
-    dts({ copyDtsFiles: true }),
+    dts({
+      outputDir: 'dist',
+      copyDtsFiles: true,
+    }),
+    {
+      ...nodeExternals({
+        devDeps: true,
+        builtinsPrefix: 'ignore',
+      }),
+      enforce: 'pre',
+    },
   ],
   ],
   build: {
   build: {
     outDir: 'dist/client',
     outDir: 'dist/client',
@@ -18,16 +29,5 @@ export default defineConfig({
       name: 'remark-attachment-refs-libs',
       name: 'remark-attachment-refs-libs',
       formats: ['es'],
       formats: ['es'],
     },
     },
-    rollupOptions: {
-      external: [
-        'bunyan',
-        'universal-bunyan',
-        'react',
-        'react-dom',
-        /^hast-.*/,
-        /^unist-.*/,
-        /^@growi\/.*/,
-      ],
-    },
   },
   },
 });
 });

+ 12 - 10
packages/remark-attachment-refs/vite.server.config.ts

@@ -1,10 +1,21 @@
+import { nodeExternals } from 'rollup-plugin-node-externals';
 import { defineConfig } from 'vite';
 import { defineConfig } from 'vite';
 import dts from 'vite-plugin-dts';
 import dts from 'vite-plugin-dts';
 
 
 // https://vitejs.dev/config/
 // https://vitejs.dev/config/
 export default defineConfig({
 export default defineConfig({
   plugins: [
   plugins: [
-    dts({ copyDtsFiles: true }),
+    dts({
+      outputDir: 'dist',
+      copyDtsFiles: true,
+    }),
+    {
+      ...nodeExternals({
+        devDeps: true,
+        builtinsPrefix: 'ignore',
+      }),
+      enforce: 'pre',
+    },
   ],
   ],
   build: {
   build: {
     outDir: 'dist/server',
     outDir: 'dist/server',
@@ -21,15 +32,6 @@ export default defineConfig({
         preserveModules: true,
         preserveModules: true,
         preserveModulesRoot: 'src/server',
         preserveModulesRoot: 'src/server',
       },
       },
-      external: [
-        'bunyan',
-        'universal-bunyan',
-        'react',
-        'react-dom',
-        /^hast-.*/,
-        /^unist-.*/,
-        /^@growi\/.*/,
-      ],
     },
     },
   },
   },
 });
 });

+ 6 - 4
yarn.lock

@@ -2526,8 +2526,10 @@
     "@growi/core" "link:packages/core"
     "@growi/core" "link:packages/core"
     "@growi/remark-growi-directive" "link:packages/remark-growi-directive"
     "@growi/remark-growi-directive" "link:packages/remark-growi-directive"
     "@growi/ui" "link:packages/ui"
     "@growi/ui" "link:packages/ui"
+    axios "^0.24.0"
     bunyan "^1.8.15"
     bunyan "^1.8.15"
     hast-util-select "^5.0.5"
     hast-util-select "^5.0.5"
+    swr "^2.0.3"
     universal-bunyan "^0.9.2"
     universal-bunyan "^0.9.2"
 
 
 "@growi/remark-drawio@link:packages/remark-drawio":
 "@growi/remark-drawio@link:packages/remark-drawio":
@@ -6616,10 +6618,10 @@ cssfilter@0.0.10:
   version "0.0.10"
   version "0.0.10"
   resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
   resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
 
 
-csstype@^3.0.2:
-  version "3.0.11"
-  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.11.tgz#d66700c5eacfac1940deb4e3ee5642792d85cd33"
-  integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
+csstype@^3.0.2, csstype@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+  integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
 
 
 csurf@^1.11.0:
 csurf@^1.11.0:
   version "1.11.0"
   version "1.11.0"