mirror of https://github.com/vuejs/core.git
fix(build): ensure correct typing for node esm
This commit is contained in:
parent
fecd5c4044
commit
d621d4c646
|
@ -0,0 +1 @@
|
||||||
|
export * from '@vue/compiler-sfc'
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"module": "index.mjs",
|
"module": "index.mjs"
|
||||||
"types": "index.d.ts"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,22 +21,35 @@
|
||||||
],
|
],
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": {
|
||||||
"types": "./dist/vue.d.ts",
|
|
||||||
"import": {
|
"import": {
|
||||||
|
"types": "./dist/vue.d.mts",
|
||||||
"node": "./index.mjs",
|
"node": "./index.mjs",
|
||||||
"default": "./dist/vue.runtime.esm-bundler.js"
|
"default": "./dist/vue.runtime.esm-bundler.js"
|
||||||
},
|
},
|
||||||
"require": "./index.js"
|
"require": {
|
||||||
|
"types": "./dist/vue.d.ts",
|
||||||
|
"default": "./index.js"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"./server-renderer": {
|
"./server-renderer": {
|
||||||
"types": "./server-renderer/index.d.ts",
|
"import": {
|
||||||
"import": "./server-renderer/index.mjs",
|
"types": "./server-renderer/index.d.mts",
|
||||||
"require": "./server-renderer/index.js"
|
"default": "./server-renderer/index.mjs"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"types": "./server-renderer/index.d.ts",
|
||||||
|
"default": "./server-renderer/index.js"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"./compiler-sfc": {
|
"./compiler-sfc": {
|
||||||
"types": "./compiler-sfc/index.d.ts",
|
"import": {
|
||||||
"import": "./compiler-sfc/index.mjs",
|
"types": "./compiler-sfc/index.d.mts",
|
||||||
"require": "./compiler-sfc/index.js"
|
"default": "./compiler-sfc/index.mjs"
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"types": "./compiler-sfc/index.d.ts",
|
||||||
|
"default": "./compiler-sfc/index.js"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"./jsx-runtime": {
|
"./jsx-runtime": {
|
||||||
"types": "./jsx-runtime/index.d.ts",
|
"types": "./jsx-runtime/index.d.ts",
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
export * from '@vue/server-renderer'
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"module": "index.mjs",
|
"module": "index.mjs"
|
||||||
"types": "index.d.ts"
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// @ts-check
|
// @ts-check
|
||||||
import { parse } from '@babel/parser'
|
import { parse } from '@babel/parser'
|
||||||
import { existsSync, readdirSync, readFileSync } from 'fs'
|
import { existsSync, readdirSync, readFileSync, writeFileSync } from 'fs'
|
||||||
import MagicString from 'magic-string'
|
import MagicString from 'magic-string'
|
||||||
import dts from 'rollup-plugin-dts'
|
import dts from 'rollup-plugin-dts'
|
||||||
import { walk } from 'estree-walker'
|
import { walk } from 'estree-walker'
|
||||||
|
@ -25,7 +25,7 @@ export default targetPackages.map(pkg => {
|
||||||
file: `packages/${pkg}/dist/${pkg}.d.ts`,
|
file: `packages/${pkg}/dist/${pkg}.d.ts`,
|
||||||
format: 'es'
|
format: 'es'
|
||||||
},
|
},
|
||||||
plugins: [dts(), patchTypes(pkg)],
|
plugins: [dts(), patchTypes(pkg), ...(pkg === 'vue' ? [copyMts()] : [])],
|
||||||
onwarn(warning, warn) {
|
onwarn(warning, warn) {
|
||||||
// during dts rollup, everything is externalized by default
|
// during dts rollup, everything is externalized by default
|
||||||
if (
|
if (
|
||||||
|
@ -232,3 +232,24 @@ function patchTypes(pkg) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* According to https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-7.html#packagejson-exports-imports-and-self-referencing
|
||||||
|
* the only way to correct provide types for both Node ESM and CJS is to have
|
||||||
|
* two separate declaration files, so we need to copy vue.d.ts to vue.d.mts
|
||||||
|
* upon build.
|
||||||
|
*
|
||||||
|
* @returns {import('rollup').Plugin}
|
||||||
|
*/
|
||||||
|
function copyMts() {
|
||||||
|
return {
|
||||||
|
name: 'copy-vue-mts',
|
||||||
|
writeBundle(_, bundle) {
|
||||||
|
writeFileSync(
|
||||||
|
'packages/vue/dist/vue.d.mts',
|
||||||
|
// @ts-ignore
|
||||||
|
bundle['vue.d.ts'].code
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue