2
0
Эх сурвалжийг харах

Create an ESM build for @converse/headless

JC Brand 1 сар өмнө
parent
commit
5e1bf7d204

+ 1 - 1
package.json

@@ -13,7 +13,7 @@
         "default": "./dist/converse.esm.js"
       },
       "require": {
-        "types": "./types/index.d.ts",
+        "types": "./src/types/index.d.ts",
         "default": "./dist/converse.js"
       }
     },

+ 35 - 12
rspack/rspack.headless.js

@@ -2,21 +2,11 @@ const path = require('path');
 const { merge } = require('webpack-merge');
 const common = require('../rspack/rspack.common.js');
 
-module.exports = merge(common, {
+const sharedConfig = {
     entry: {
         'converse-headless': '@converse/headless',
         'converse-headless.min': '@converse/headless',
     },
-    output: {
-        path: path.resolve(__dirname, '../src/headless/dist'),
-        filename: '[name].js',
-        chunkFilename: '[name].js',
-        globalObject: 'this',
-        library: {
-            name: 'converse',
-            type: 'umd',
-        },
-    },
     mode: 'production',
     module: {
         rules: [
@@ -34,4 +24,37 @@ module.exports = merge(common, {
             },
         ],
     },
-});
+};
+
+module.exports = [
+    // CJS Build
+    merge(common, {
+        ...sharedConfig,
+        output: {
+            path: path.resolve(__dirname, '../src/headless/dist'),
+            filename: '[name].js',
+            chunkFilename: '[name].js',
+            globalObject: 'this',
+            library: {
+                name: 'converse',
+                type: 'umd',
+            },
+        },
+    }),
+    // ESM Build
+    merge(common, {
+        ...sharedConfig,
+        experiments: {
+            outputModule: true,
+            topLevelAwait: true,
+        },
+        output: {
+            path: path.resolve(__dirname, '../src/headless/dist'),
+            filename: '[name].esm.js',
+            chunkFilename: '[name].esm.js',
+            library: {
+                type: 'module'
+            }
+        },
+    })
+];

+ 6 - 5
src/headless/package.json

@@ -12,17 +12,18 @@
     ".": {
       "import": {
         "types": "./types/index.d.ts",
-        "default": "./index.js"
+        "default": "./dist/converse-headless.esm.js"
       },
       "require": {
         "types": "./types/index.d.ts",
-        "default": "./dist/headless.js"
+        "default": "./dist/converse-headless.js"
       }
-    }
+    },
+    "./dist/*": "./dist/*"
   },
-  "main": "./index.js",
+  "main": "./dist/converse-headless.js",
   "types": "./types/index.d.ts",
-  "module": "./index.js",
+  "module": "./dist/converse-headless.esm.js",
   "files": [
     "README.md",
     "dist/",