From: 三咲智子 Kevin Deng Date: Sun, 14 Jan 2024 15:33:08 +0000 (+0800) Subject: Merge remote-tracking branch 'upstream/main' X-Git-Tag: v3.6.0-alpha.1~16^2~680 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af9f892afaeb0277690239547340f42581319e0c;p=thirdparty%2Fvuejs%2Fcore.git Merge remote-tracking branch 'upstream/main' --- af9f892afaeb0277690239547340f42581319e0c diff --cc packages/runtime-core/src/apiWatch.ts index b6c0d5f838,bc10547824..3a05fff2f7 --- a/packages/runtime-core/src/apiWatch.ts +++ b/packages/runtime-core/src/apiWatch.ts @@@ -25,11 -30,16 +25,10 @@@ import currentInstance, isInSSRComponentSetup, setCurrentInstance, - unsetCurrentInstance, } from './component' -import { - ErrorCodes, - callWithAsyncErrorHandling, - callWithErrorHandling, -} from './errorHandling' -import { queuePostRenderEffect } from './renderer' +import { handleError as handleErrorWithInstance } from './errorHandling' +import { createPostRenderScheduler } from './renderer' import { warn } from './warning' -import { DeprecationTypes } from './compat/compatConfig' -import { checkCompatEnabled, isCompatEnabled } from './compat/compatConfig' import type { ObjectWatchOptionItem } from './componentOptions' import { useSSRContext } from './helpers/useSsrContext' diff --cc packages/runtime-core/src/componentProps.ts index e49bf0dcdb,088f4da3c6..1a460cc346 --- a/packages/runtime-core/src/componentProps.ts +++ b/packages/runtime-core/src/componentProps.ts @@@ -31,8 -30,8 +31,7 @@@ import type ComponentInternalInstance, type ComponentOptions, type ConcreteComponent, - type Data, setCurrentInstance, - unsetCurrentInstance, } from './component' import { isEmitListener } from './componentEmits' import { InternalObjectKey } from './vnode' diff --cc pnpm-lock.yaml index b9689e7ef5,bdb75eeb3c..a84db884a0 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@@ -16,7 -16,7 +16,7 @@@ importers version: 7.23.6 '@codspeed/vitest-plugin': specifier: ^2.3.1 - version: 2.3.1(vite@5.0.10)(vitest@1.1.1) - version: 2.3.1(vite@5.0.7)(vitest@1.1.3) ++ version: 2.3.1(vite@5.0.10)(vitest@1.2.0) '@rollup/plugin-alias': specifier: ^5.0.1 version: 5.0.1(rollup@4.4.1) @@@ -42,8 -42,8 +42,8 @@@ specifier: ^1.2.5 version: 1.2.5 '@types/node': - specifier: ^20.10.6 - version: 20.10.6 + specifier: ^20.10.7 - version: 20.10.7 ++ version: 20.11.0 '@types/semver': specifier: ^7.5.6 version: 7.5.6 @@@ -54,8 -54,8 +54,8 @@@ specifier: ^6.17.0 version: 6.17.0(eslint@8.56.0)(typescript@5.2.2) '@vitest/coverage-istanbul': - specifier: ^1.1.1 - version: 1.1.1(vitest@1.1.1) + specifier: ^1.1.3 - version: 1.1.3(vitest@1.1.3) ++ version: 1.2.0(vitest@1.2.0) '@vue/consolidate': specifier: 0.17.3 version: 0.17.3 @@@ -169,10 -169,10 +169,10 @@@ version: 5.2.2 vite: specifier: ^5.0.5 - version: 5.0.10(@types/node@20.10.6)(terser@5.22.0) - version: 5.0.7(@types/node@20.10.7)(terser@5.22.0) ++ version: 5.0.10(@types/node@20.11.0)(terser@5.22.0) vitest: - specifier: ^1.1.1 - version: 1.1.1(@types/node@20.10.6)(jsdom@23.0.1)(terser@5.22.0) + specifier: ^1.1.3 - version: 1.1.3(@types/node@20.10.7)(jsdom@23.2.0)(terser@5.22.0) ++ version: 1.2.0(@types/node@20.11.0)(jsdom@23.2.0)(terser@5.22.0) packages/compiler-core: dependencies: @@@ -369,7 -348,7 +369,7 @@@ dependencies: '@vue/repl': specifier: ^3.1.1 - version: 3.2.0 - version: 3.1.1 ++ version: 3.3.0 file-saver: specifier: ^2.0.5 version: 2.0.5 @@@ -382,10 -361,10 +382,10 @@@ devDependencies: '@vitejs/plugin-vue': specifier: ^4.4.0 - version: 4.4.0(vite@5.0.7)(vue@packages+vue) + version: 4.4.0(vite@5.0.10)(vue@packages+vue) vite: specifier: ^5.0.5 - version: 5.0.10(@types/node@20.10.6)(terser@5.22.0) - version: 5.0.7(@types/node@20.10.7)(terser@5.22.0) ++ version: 5.0.10(@types/node@20.11.0)(terser@5.22.0) packages/shared: {} @@@ -440,34 -413,6 +440,34 @@@ specifier: workspace:* version: link:../vue + packages/vue-vapor: + dependencies: + '@vue/compiler-vapor': + specifier: workspace:* + version: link:../compiler-vapor + '@vue/runtime-vapor': + specifier: workspace:* + version: link:../runtime-vapor + + playground: + dependencies: + vue: + specifier: workspace:* + version: link:../packages/vue + devDependencies: + '@vitejs/plugin-vue': + specifier: ^4.5.0 + version: 4.5.0(vite@5.0.2)(vue@packages+vue) + vite: + specifier: ^5.0.2 - version: 5.0.2(@types/node@20.10.6)(terser@5.22.0) ++ version: 5.0.2(@types/node@20.11.0)(terser@5.22.0) + vite-hyper-config: + specifier: ^0.2.1 - version: 0.2.1(@types/node@20.10.6)(terser@5.22.0)(vite@5.0.2) ++ version: 0.2.1(@types/node@20.11.0)(terser@5.22.0)(vite@5.0.2) + vite-plugin-inspect: + specifier: ^0.7.42 + version: 0.7.42(rollup@4.4.1)(vite@5.0.2) + packages: /@aashutoshrathi/word-wrap@1.2.6: @@@ -483,10 -428,14 +483,18 @@@ '@jridgewell/trace-mapping': 0.3.20 dev: true - /@asamuzakjp/dom-selector@2.0.1: - resolution: {integrity: sha512-QJAJffmCiymkv6YyQ7voyQb5caCth6jzZsQncYCpHXrJ7RqdYG5y43+is8mnFcYubdOkr7cn1+na9BdFMxqw7w==} + /@antfu/utils@0.7.6: + resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} + dev: true + ++ /@asamuzakjp/dom-selector@2.0.2: ++ resolution: {integrity: sha512-x1KXOatwofR6ZAYzXRBL5wrdV0vwNxlTCK9NCuLqAzQYARqGcvFwiJA6A1ERuh+dgeA4Dxm3JBYictIes+SqUQ==} + dependencies: + bidi-js: 1.0.3 + css-tree: 2.3.1 + is-potential-custom-element-name: 1.0.1 + dev: true + /@babel/code-frame@7.23.5: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} @@@ -684,15 -632,15 +692,15 @@@ node-gyp-build: 4.7.1 dev: true - /@codspeed/vitest-plugin@2.3.1(vite@5.0.10)(vitest@1.1.1): - /@codspeed/vitest-plugin@2.3.1(vite@5.0.7)(vitest@1.1.3): ++ /@codspeed/vitest-plugin@2.3.1(vite@5.0.10)(vitest@1.2.0): resolution: {integrity: sha512-/e4G2B/onX/hG/EjUU/NpDxnIryeTDamVRTBeWfgQDoex3g7GDzTwoQktaU5l/Asw3ZjEErQg+oQVToQ6jYZlA==} peerDependencies: vite: ^4.2.0 || ^5.0.0 vitest: '>=1.0.0-beta.4 || >=1' dependencies: '@codspeed/core': 2.3.1 - vite: 5.0.10(@types/node@20.10.6)(terser@5.22.0) - vitest: 1.1.1(@types/node@20.10.6)(jsdom@23.0.1)(terser@5.22.0) - vite: 5.0.7(@types/node@20.10.7)(terser@5.22.0) - vitest: 1.1.3(@types/node@20.10.7)(jsdom@23.2.0)(terser@5.22.0) ++ vite: 5.0.10(@types/node@20.11.0)(terser@5.22.0) ++ vitest: 1.2.0(@types/node@20.11.0)(jsdom@23.2.0)(terser@5.22.0) dev: true /@esbuild/aix-ppc64@0.19.10: @@@ -1056,12 -1004,8 +1064,12 @@@ dev: true optional: true + /@polka/url@1.0.0-next.23: + resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + dev: true + - /@puppeteer/browsers@1.9.0: - resolution: {integrity: sha512-QwguOLy44YBGC8vuPP2nmpX4MUN2FzWbsnvZJtiCzecU3lHmVZkaC1tq6rToi9a200m8RzlVtDyxCS0UIDrxUg==} + /@puppeteer/browsers@1.9.1: + resolution: {integrity: sha512-PuvK6xZzGhKPvlx3fpfdM2kYY3P/hB1URtK8wA7XUJ6prn6pp22zvJHu48th0SGcHL9SutbPHrFuQgfXTFobWA==} engines: {node: '>=16.3.0'} hasBin: true dependencies: @@@ -1317,8 -1261,8 +1325,8 @@@ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} - /@types/node@20.10.7: - resolution: {integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==} ++ /@types/node@20.11.0: ++ resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} dependencies: undici-types: 5.26.5 dev: true @@@ -1339,7 -1283,7 +1347,7 @@@ resolution: {integrity: sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==} requiresBuild: true dependencies: - '@types/node': 20.10.6 - '@types/node': 20.10.7 ++ '@types/node': 20.11.0 dev: true optional: true @@@ -1548,23 -1492,12 +1556,23 @@@ vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.10(@types/node@20.10.6)(terser@5.22.0) - vite: 5.0.7(@types/node@20.10.7)(terser@5.22.0) ++ vite: 5.0.10(@types/node@20.11.0)(terser@5.22.0) + vue: link:packages/vue + dev: true + + /@vitejs/plugin-vue@4.5.0(vite@5.0.2)(vue@packages+vue): + resolution: {integrity: sha512-a2WSpP8X8HTEww/U00bU4mX1QpLINNuz/2KMNpLsdu3BzOpak3AGI1CJYBTXcc4SPhaD0eNRUp7IyQK405L5dQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.2.25 + dependencies: - vite: 5.0.2(@types/node@20.10.6)(terser@5.22.0) ++ vite: 5.0.2(@types/node@20.11.0)(terser@5.22.0) vue: link:packages/vue dev: true - /@vitest/coverage-istanbul@1.1.1(vitest@1.1.1): - resolution: {integrity: sha512-Ikq6k2/KJ3MqEnGJCZBctcgxW1JRPzyVetVz1AYqLxrHNiG/epGFPZ74kIc3AK0HGaf0RsqZkc8riCTmxfH/dQ==} - /@vitest/coverage-istanbul@1.1.3(vitest@1.1.3): - resolution: {integrity: sha512-pqx/RaLjJ7oxsbi0Vc/CjyXBXd86yQ0lKq1PPnk9BMNLqMTEWwfcTelcNrl41yK+IVRhHlFtwcjDva3VslbMMQ==} ++ /@vitest/coverage-istanbul@1.2.0(vitest@1.2.0): ++ resolution: {integrity: sha512-hNN/pUR5la6P/L78+YcRl05Lpf6APXlH9ujkmCxxjVWtVG6WuKuqUMhHgYQBYfiOORBwDZ1MBgSUGCMPh4kpmQ==} peerDependencies: vitest: ^1.0.0 dependencies: @@@ -1577,45 -1510,46 +1585,46 @@@ magicast: 0.3.2 picocolors: 1.0.0 test-exclude: 6.0.0 - vitest: 1.1.1(@types/node@20.10.6)(jsdom@23.0.1)(terser@5.22.0) - vitest: 1.1.3(@types/node@20.10.7)(jsdom@23.2.0)(terser@5.22.0) ++ vitest: 1.2.0(@types/node@20.11.0)(jsdom@23.2.0)(terser@5.22.0) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.1.1: - resolution: {integrity: sha512-Qpw01C2Hyb3085jBkOJLQ7HRX0Ncnh2qV4p+xWmmhcIUlMykUF69zsnZ1vPmAjZpomw9+5tWEGOQ0GTfR8U+kA==} - /@vitest/expect@1.1.3: - resolution: {integrity: sha512-MnJqsKc1Ko04lksF9XoRJza0bGGwTtqfbyrsYv5on4rcEkdo+QgUdITenBQBUltKzdxW7K3rWh+nXRULwsdaVg==} ++ /@vitest/expect@1.2.0: ++ resolution: {integrity: sha512-H+2bHzhyvgp32o7Pgj2h9RTHN0pgYaoi26Oo3mE+dCi1PAqV31kIIVfTbqMO3Bvshd5mIrJLc73EwSRrbol9Lw==} dependencies: - '@vitest/spy': 1.1.1 - '@vitest/utils': 1.1.1 - '@vitest/spy': 1.1.3 - '@vitest/utils': 1.1.3 ++ '@vitest/spy': 1.2.0 ++ '@vitest/utils': 1.2.0 chai: 4.3.10 dev: true - /@vitest/runner@1.1.1: - resolution: {integrity: sha512-8HokyJo1SnSi3uPFKfWm/Oq1qDwLC4QDcVsqpXIXwsRPAg3gIDh8EbZ1ri8cmQkBxdOu62aOF9B4xcqJhvt4xQ==} - /@vitest/runner@1.1.3: - resolution: {integrity: sha512-Va2XbWMnhSdDEh/OFxyUltgQuuDRxnarK1hW5QNN4URpQrqq6jtt8cfww/pQQ4i0LjoYxh/3bYWvDFlR9tU73g==} ++ /@vitest/runner@1.2.0: ++ resolution: {integrity: sha512-vaJkDoQaNUTroT70OhM0NPznP7H3WyRwt4LvGwCVYs/llLaqhoSLnlIhUClZpbF5RgAee29KRcNz0FEhYcgxqA==} dependencies: - '@vitest/utils': 1.1.1 - '@vitest/utils': 1.1.3 ++ '@vitest/utils': 1.2.0 p-limit: 5.0.0 pathe: 1.1.1 dev: true - /@vitest/snapshot@1.1.1: - resolution: {integrity: sha512-WnMHjv4VdHLbFGgCdVVvyRkRPnOKN75JJg+LLTdr6ah7YnL75W+7CTIMdzPEPzaDxA8r5yvSVlc1d8lH3yE28w==} - /@vitest/snapshot@1.1.3: - resolution: {integrity: sha512-U0r8pRXsLAdxSVAyGNcqOU2H3Z4Y2dAAGGelL50O0QRMdi1WWeYHdrH/QWpN1e8juWfVKsb8B+pyJwTC+4Gy9w==} ++ /@vitest/snapshot@1.2.0: ++ resolution: {integrity: sha512-P33EE7TrVgB3HDLllrjK/GG6WSnmUtWohbwcQqmm7TAk9AVHpdgf7M3F3qRHKm6vhr7x3eGIln7VH052Smo6Kw==} dependencies: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.1.1: - resolution: {integrity: sha512-hDU2KkOTfFp4WFFPWwHFauddwcKuGQ7gF6Un/ZZkCogoAiTMN7/7YKvUDbywPZZ754iCQGjdUmXN3t4k0jm1IQ==} - /@vitest/spy@1.1.3: - resolution: {integrity: sha512-Ec0qWyGS5LhATFQtldvChPTAHv08yHIOZfiNcjwRQbFPHpkih0md9KAbs7TfeIfL7OFKoe7B/6ukBTqByubXkQ==} ++ /@vitest/spy@1.2.0: ++ resolution: {integrity: sha512-MNxSAfxUaCeowqyyGwC293yZgk7cECZU9wGb8N1pYQ0yOn/SIr8t0l9XnGRdQZvNV/ZHBYu6GO/W3tj5K3VN1Q==} dependencies: tinyspy: 2.2.0 dev: true - /@vitest/utils@1.1.1: - resolution: {integrity: sha512-E9LedH093vST/JuBSyHLFMpxJKW3dLhe/flUSPFedoyj4wKiFX7Jm8gYLtOIiin59dgrssfmFv0BJ1u8P/LC/A==} - /@vitest/utils@1.1.3: - resolution: {integrity: sha512-Dyt3UMcdElTll2H75vhxfpZu03uFpXRCHxWnzcrFjZxT1kTbq8ALUYIeBgGolo1gldVdI0YSlQRacsqxTwNqwg==} ++ /@vitest/utils@1.2.0: ++ resolution: {integrity: sha512-FyD5bpugsXlwVpTcGLDf3wSPYy8g541fQt14qtzo8mJ4LdEpDKZ9mQy2+qdJm2TZRpjY5JLXihXCgIxiRJgi5g==} dependencies: diff-sequences: 29.6.3 + estree-walker: 3.0.3 loupe: 2.3.7 pretty-format: 29.7.0 dev: true @@@ -1625,8 -1559,8 +1634,8 @@@ engines: {node: '>= 0.12.0'} dev: true - /@vue/repl@3.2.0: - resolution: {integrity: sha512-heKXXwAm4p3wYqVsYqW5i9bAkiGqwbZygfBx8stZ48QqTvaTGiGY3qASJwvhc5FrZDPGoGcFRjab6XDImKxPvA==} - /@vue/repl@3.1.1: - resolution: {integrity: sha512-9nJImsUeywU2MTqvzf4ueqWC49UC3LVXVPk1HmoNnLVumfWXv+w5ytuSA//fxb/N/O5vCqE0UV63/dYvnCZpwQ==} ++ /@vue/repl@3.3.0: ++ resolution: {integrity: sha512-A9tdO7obt/kpFUHdgGoRnan6bZjfz/WAJ5+DpPkvgNEc960W+bJraURv8MUVtH2Id/byWotKbUve2jTakiccSw==} dev: false /@zeit/schemas@2.29.0: @@@ -1858,11 -1792,12 +1867,17 @@@ engines: {node: '>=10.0.0'} dev: true + /bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + dependencies: + require-from-string: 2.0.2 + dev: true + + /big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + dev: true + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} @@@ -3886,7 -3745,8 +3915,8 @@@ canvas: optional: true dependencies: - cssstyle: 3.0.0 - '@asamuzakjp/dom-selector': 2.0.1 ++ '@asamuzakjp/dom-selector': 2.0.2 + cssstyle: 4.0.1 data-urls: 5.0.0 decimal.js: 10.4.3 form-data: 4.0.0 @@@ -6019,37 -5819,16 +6048,58 @@@ engines: {node: '>= 0.8'} dev: true - /vite-hyper-config@0.2.1(@types/node@20.10.6)(terser@5.22.0)(vite@5.0.2): - /vite-node@1.1.3(@types/node@20.10.7)(terser@5.22.0): - resolution: {integrity: sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==} ++ /vite-hyper-config@0.2.1(@types/node@20.11.0)(terser@5.22.0)(vite@5.0.2): + resolution: {integrity: sha512-ItRIpzWp0XMh/Sn1H0GCWnQIUcBjnSaZy/EbOpJcRr9H/KTBHUSTCEOigE9K0KTN01Z0GDi/8WgVT9+RPL932A==} + engines: {node: '>=18.0.0'} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + dependencies: + cac: 6.7.14 + picocolors: 1.0.0 - vite: 5.0.2(@types/node@20.10.6)(terser@5.22.0) - vite-node: 1.1.1(@types/node@20.10.6)(terser@5.22.0) ++ vite: 5.0.2(@types/node@20.11.0)(terser@5.22.0) ++ vite-node: 1.1.1(@types/node@20.11.0)(terser@5.22.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + - /vite-node@1.1.1(@types/node@20.10.6)(terser@5.22.0): ++ /vite-node@1.1.1(@types/node@20.11.0)(terser@5.22.0): + resolution: {integrity: sha512-2bGE5w4jvym5v8llF6Gu1oBrmImoNSs4WmRVcavnG2me6+8UQntTqLiAMFyiAobp+ZXhj5ZFhI7SmLiFr/jrow==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 - vite: 5.0.10(@types/node@20.10.6)(terser@5.22.0) ++ vite: 5.0.10(@types/node@20.11.0)(terser@5.22.0) ++ transitivePeerDependencies: ++ - '@types/node' ++ - less ++ - lightningcss ++ - sass ++ - stylus ++ - sugarss ++ - supports-color ++ - terser ++ dev: true ++ ++ /vite-node@1.2.0(@types/node@20.11.0)(terser@5.22.0): ++ resolution: {integrity: sha512-ETnQTHeAbbOxl7/pyBck9oAPZZZo+kYnFt1uQDD+hPReOc+wCjXw4r4jHriBRuVDB5isHmPXxrfc1yJnfBERqg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.1 + picocolors: 1.0.0 - vite: 5.0.7(@types/node@20.10.7)(terser@5.22.0) ++ vite: 5.0.10(@types/node@20.11.0)(terser@5.22.0) transitivePeerDependencies: - '@types/node' - less @@@ -6061,69 -5840,8 +6111,69 @@@ - terser dev: true - /vite@5.0.7(@types/node@20.10.7)(terser@5.22.0): - resolution: {integrity: sha512-B4T4rJCDPihrQo2B+h1MbeGL/k/GMAHzhQ8S0LjQ142s6/+l3hHTT095ORvsshj4QCkoWu3Xtmob5mazvakaOw==} + /vite-plugin-inspect@0.7.42(rollup@4.4.1)(vite@5.0.2): + resolution: {integrity: sha512-JCyX86wr3siQc+p9Kd0t8VkFHAJag0RaQVIpdFGSv5FEaePEVB6+V/RGtz2dQkkGSXQzRWrPs4cU3dRKg32bXw==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.6 + '@rollup/pluginutils': 5.0.5(rollup@4.4.1) + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.1.1 + open: 9.1.0 + picocolors: 1.0.0 + sirv: 2.0.3 - vite: 5.0.2(@types/node@20.10.6)(terser@5.22.0) ++ vite: 5.0.2(@types/node@20.11.0)(terser@5.22.0) + transitivePeerDependencies: + - rollup + - supports-color + dev: true + - /vite@5.0.10(@types/node@20.10.6)(terser@5.22.0): ++ /vite@5.0.10(@types/node@20.11.0)(terser@5.22.0): + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: - '@types/node': 20.10.6 ++ '@types/node': 20.11.0 + esbuild: 0.19.10 + postcss: 8.4.32 + rollup: 4.4.1 + terser: 5.22.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + - /vite@5.0.2(@types/node@20.10.6)(terser@5.22.0): ++ /vite@5.0.2(@types/node@20.11.0)(terser@5.22.0): + resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@@ -6150,7 -5868,7 +6200,7 @@@ terser: optional: true dependencies: - '@types/node': 20.10.6 - '@types/node': 20.10.7 ++ '@types/node': 20.11.0 esbuild: 0.19.10 postcss: 8.4.32 rollup: 4.4.1 @@@ -6159,8 -5877,8 +6209,8 @@@ fsevents: 2.3.3 dev: true - /vitest@1.1.1(@types/node@20.10.6)(jsdom@23.0.1)(terser@5.22.0): - resolution: {integrity: sha512-Ry2qs4UOu/KjpXVfOCfQkTnwSXYGrqTbBZxw6reIYEFjSy1QUARRg5pxiI5BEXy+kBVntxUYNMlq4Co+2vD3fQ==} - /vitest@1.1.3(@types/node@20.10.7)(jsdom@23.2.0)(terser@5.22.0): - resolution: {integrity: sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==} ++ /vitest@1.2.0(@types/node@20.11.0)(jsdom@23.2.0)(terser@5.22.0): ++ resolution: {integrity: sha512-Ixs5m7BjqvLHXcibkzKRQUvD/XLw0E3rvqaCMlrm/0LMsA0309ZqYvTlPzkhh81VlEyVZXFlwWnkhb6/UMtcaQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@@ -6184,12 -5902,12 +6234,12 @@@ jsdom: optional: true dependencies: - '@types/node': 20.10.6 - '@vitest/expect': 1.1.1 - '@vitest/runner': 1.1.1 - '@vitest/snapshot': 1.1.1 - '@vitest/spy': 1.1.1 - '@vitest/utils': 1.1.1 - '@types/node': 20.10.7 - '@vitest/expect': 1.1.3 - '@vitest/runner': 1.1.3 - '@vitest/snapshot': 1.1.3 - '@vitest/spy': 1.1.3 - '@vitest/utils': 1.1.3 ++ '@types/node': 20.11.0 ++ '@vitest/expect': 1.2.0 ++ '@vitest/runner': 1.2.0 ++ '@vitest/snapshot': 1.2.0 ++ '@vitest/spy': 1.2.0 ++ '@vitest/utils': 1.2.0 acorn-walk: 8.3.1 cac: 6.7.14 chai: 4.3.10 @@@ -6204,8 -5922,8 +6254,8 @@@ strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.1 - vite: 5.0.10(@types/node@20.10.6)(terser@5.22.0) - vite-node: 1.1.1(@types/node@20.10.6)(terser@5.22.0) - vite: 5.0.7(@types/node@20.10.7)(terser@5.22.0) - vite-node: 1.1.3(@types/node@20.10.7)(terser@5.22.0) ++ vite: 5.0.10(@types/node@20.11.0)(terser@5.22.0) ++ vite-node: 1.2.0(@types/node@20.11.0)(terser@5.22.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --cc rollup.config.js index 5c898035e2,657b711b1a..83cb83a2f1 --- a/rollup.config.js +++ b/rollup.config.js @@@ -148,43 -154,9 +154,43 @@@ function createConfig(format, output, p // Rollup to complain for non-ESM targets, so we use separate entries for // esm vs. non-esm builds. if (isCompatPackage && (isBrowserESMBuild || isBundlerESMBuild)) { - entryFile = /runtime$/.test(format) - ? `src/esm-runtime.ts` - : `src/esm-index.ts` + entryFile = `esm-${entryFile}` + } + entryFile = 'src/' + entryFile + + return { + input: resolve(entryFile), + // Global and Browser ESM builds inlines everything so that they can be + // used alone. + external: resolveExternal(), + plugins: [ + json({ + namedExports: false, + }), + alias({ + entries, + }), + enumPlugin, + ...resolveReplace(), + esbuild({ + tsconfig: path.resolve(__dirname, 'tsconfig.json'), + sourceMap: output.sourcemap, + minify: false, - target: isServerRenderer || isNodeBuild ? 'es2019' : 'es2015', ++ target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2015', + define: resolveDefine(), + }), + ...resolveNodePlugins(), + ...plugins, + ], + output, + onwarn(msg, warn) { + if (msg.code !== 'CIRCULAR_DEPENDENCY') { + warn(msg) + } + }, + treeshake: { + moduleSideEffects: false, + }, } function resolveDefine() { diff --cc scripts/dev.js index abc7e048ed,b015835ab4..efe9e75899 --- a/scripts/dev.js +++ b/scripts/dev.js @@@ -30,104 -31,101 +30,104 @@@ const postfix = format.endsWith('-runti ? `runtime.${format.replace(/-runtime$/, '')}` : format -const outfile = resolve( - __dirname, - `../packages/${target}/dist/${ - target === 'vue-compat' ? `vue` : target - }.${postfix}.${prod ? `prod.` : ``}js`, -) -const relativeOutfile = relative(process.cwd(), outfile) +for (const target of targets) { + const pkg = require(`../packages/${target}/package.json`) + const outfile = resolve( + __dirname, + `../packages/${target}/dist/${ + target === 'vue-compat' ? `vue` : target + }.${postfix}.${prod ? `prod.` : ``}js`, + ) + const relativeOutfile = relative(process.cwd(), outfile) -// resolve externals -// TODO this logic is largely duplicated from rollup.config.js -/** @type {string[]} */ -let external = [] -if (!inlineDeps) { - // cjs & esm-bundler: external all deps - if (format === 'cjs' || format.includes('esm-bundler')) { - external = [ - ...external, - ...Object.keys(pkg.dependencies || {}), - ...Object.keys(pkg.peerDependencies || {}), - // for @vue/compiler-sfc / server-renderer - 'path', - 'url', - 'stream', - ] - } + // resolve externals + // TODO this logic is largely duplicated from rollup.config.js + /** @type {string[]} */ + let external = [] + if (!inlineDeps) { + // cjs & esm-bundler: external all deps + if (format === 'cjs' || format.includes('esm-bundler')) { + external = [ + ...external, + ...Object.keys(pkg.dependencies || {}), + ...Object.keys(pkg.peerDependencies || {}), + // for @vue/compiler-sfc / server-renderer + 'path', + 'url', + 'stream', + ] + } - if (target === 'compiler-sfc') { - const consolidatePkgPath = require.resolve( - '@vue/consolidate/package.json', - { - paths: [resolve(__dirname, `../packages/${target}/`)], - }, - ) - const consolidateDeps = Object.keys( - require(consolidatePkgPath).devDependencies, - ) - external = [ - ...external, - ...consolidateDeps, - 'fs', - 'vm', - 'crypto', - 'react-dom/server', - 'teacup/lib/express', - 'arc-templates/dist/es5', - 'then-pug', - 'then-jade', - ] + if (target === 'compiler-sfc') { + const consolidatePkgPath = require.resolve( + '@vue/consolidate/package.json', + { + paths: [resolve(__dirname, `../packages/${target}/`)], + }, + ) + const consolidateDeps = Object.keys( + require(consolidatePkgPath).devDependencies, + ) + external = [ + ...external, + ...consolidateDeps, + 'fs', + 'vm', + 'crypto', + 'react-dom/server', + 'teacup/lib/express', + 'arc-templates/dist/es5', + 'then-pug', + 'then-jade', + ] + } } -} -/** @type {Array} */ -const plugins = [ - { - name: 'log-rebuild', - setup(build) { - build.onEnd(() => { - console.log(`built: ${relativeOutfile}`) - }) + /** @type {Array} */ + const plugins = [ + { + name: 'log-rebuild', + setup(build) { + build.onEnd(() => { + console.log(`built: ${relativeOutfile}`) + }) + }, }, - }, -] + ] -if (format !== 'cjs' && pkg.buildOptions?.enableNonBrowserBranches) { - plugins.push(polyfillNode()) -} + if (format !== 'cjs' && pkg.buildOptions?.enableNonBrowserBranches) { + plugins.push(polyfillNode()) + } -esbuild - .context({ - entryPoints: [resolve(__dirname, `../packages/${target}/src/index.ts`)], - outfile, - bundle: true, - external, - sourcemap: true, - format: outputFormat, - globalName: pkg.buildOptions?.name, - platform: format === 'cjs' ? 'node' : 'browser', - plugins, - define: { - __COMMIT__: `"dev"`, - __VERSION__: `"${pkg.version}"`, - __DEV__: prod ? `false` : `true`, - __TEST__: `false`, - __BROWSER__: String( - format !== 'cjs' && !pkg.buildOptions?.enableNonBrowserBranches, - ), - __GLOBAL__: String(format === 'global'), - __ESM_BUNDLER__: String(format.includes('esm-bundler')), - __ESM_BROWSER__: String(format.includes('esm-browser')), - __CJS__: String(format === 'cjs'), - __SSR__: String(format === 'cjs' || format.includes('esm-bundler')), - __COMPAT__: String(target === 'vue-compat'), - __FEATURE_SUSPENSE__: `true`, - __FEATURE_OPTIONS_API__: `true`, - __FEATURE_PROD_DEVTOOLS__: `false`, - __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__: `false`, - }, - }) - .then(ctx => ctx.watch()) + esbuild + .context({ + entryPoints: [resolve(__dirname, `../packages/${target}/src/index.ts`)], + outfile, + bundle: true, + external, + sourcemap: true, + format: outputFormat, + globalName: pkg.buildOptions?.name, + platform: format === 'cjs' ? 'node' : 'browser', + plugins, + define: { + __COMMIT__: `"dev"`, + __VERSION__: `"${pkg.version}"`, + __DEV__: prod ? `false` : `true`, + __TEST__: `false`, + __BROWSER__: String( + format !== 'cjs' && !pkg.buildOptions?.enableNonBrowserBranches, + ), + __GLOBAL__: String(format === 'global'), + __ESM_BUNDLER__: String(format.includes('esm-bundler')), + __ESM_BROWSER__: String(format.includes('esm-browser')), - __NODE_JS__: String(format === 'cjs'), ++ __CJS__: String(format === 'cjs'), + __SSR__: String(format === 'cjs' || format.includes('esm-bundler')), + __COMPAT__: String(target === 'vue-compat'), + __FEATURE_SUSPENSE__: `true`, + __FEATURE_OPTIONS_API__: `true`, + __FEATURE_PROD_DEVTOOLS__: `false`, + __FEATURE_PROD_HYDRATION_MISMATCH_DETAILS__: `false`, + }, + }) + .then(ctx => ctx.watch()) +}