Jelajahi Sumber

fix(build): use dedicated tsconfig to avoid resolving vue to vapor entry

daiwei 4 bulan lalu
induk
melakukan
0592e2f686
2 mengubah file dengan 16 tambahan dan 1 penghapusan
  1. 5 1
      scripts/create-rolldown-config.js
  2. 11 0
      tsconfig.rolldown.json

+ 5 - 1
scripts/create-rolldown-config.js

@@ -336,7 +336,11 @@ export function createConfigsForPackage({
         define: resolveDefine(),
         target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2016',
       },
-      tsconfig: path.resolve(__dirname, '../tsconfig.json'),
+      // IMPORTANT: the root tsconfig maps `vue` -> `runtime-with-vapor.ts` for TS usage.
+      // For bundling we want `vue` to resolve to the normal entry to avoid pulling
+      // runtime-vapor into non-vapor build graphs (e.g. server-renderer esm-browser).
+      // this avoid MISSING_EXPORT errors for vapor-only exports.
+      tsconfig: path.resolve(__dirname, '../tsconfig.rolldown.json'),
       platform:
         format === 'cjs' ? 'node' : isBundlerESMBuild ? 'neutral' : 'browser',
       resolve: {

+ 11 - 0
tsconfig.rolldown.json

@@ -0,0 +1,11 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "paths": {
+      "@vue/compat": ["./packages/vue-compat/src"],
+      "@vue/*": ["./packages/*/src"],
+      "vue": ["./packages/vue/src/index.ts"],
+      "*": ["./*"]
+    }
+  }
+}