workflow: move private packages to separate directory

This commit is contained in:
Evan You 2024-08-12 08:02:03 +08:00
parent 74d26dbbe3
commit 0bdb2a3bd7
No known key found for this signature in database
GPG Key ID: 00E9AB7A6704CE0A
79 changed files with 206 additions and 273 deletions

View File

@ -236,7 +236,7 @@ Tests that test against source code are grouped under `nr test-unit`, while test
### `nr test-dts`
Runs `nr build-dts` first, then verify the type tests in `packages/dts-test` are working correctly against the actual built type declarations.
Runs `nr build-dts` first, then verify the type tests in `packages-private/dts-test` are working correctly against the actual built type declarations.
## Project Structure
@ -335,7 +335,7 @@ Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that i
### Testing Type Definition Correctness
Type tests are located in the `packages/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
Type tests are located in the `packages-private/dts-test` directory. To run the dts tests, run `nr test-dts`. Note that the type test requires all relevant `*.d.ts` files to be built first (and the script does it for you). Once the `d.ts` files are built and up-to-date, the tests can be re-run by running `nr test-dts-only`.
## Financial Contribution

View File

@ -17,8 +17,8 @@
{
groupName: 'playground',
matchFileNames: [
'packages/sfc-playground/package.json',
'packages/template-explorer/package.json',
'packages-private/sfc-playground/package.json',
'packages-private/template-explorer/package.json',
],
},
{

View File

@ -76,7 +76,11 @@ export default tseslint.config(
// tests, no restrictions (runs in Node / Vitest with jsdom)
{
files: ['**/__tests__/**', 'packages/dts-test/**'],
files: [
'**/__tests__/**',
'packages-private/dts-test/**',
'packages-private/dts-build-test/**',
],
plugins: { vitest },
languageOptions: {
globals: {
@ -119,7 +123,10 @@ export default tseslint.config(
// Private package, browser only + no syntax restrictions
{
files: ['packages/template-explorer/**', 'packages/sfc-playground/**'],
files: [
'packages-private/template-explorer/**',
'packages-private/sfc-playground/**',
],
rules: {
'no-restricted-globals': ['error', ...NodeGlobals],
'no-restricted-syntax': ['error', banConstEnum],

View File

@ -20,7 +20,7 @@
"test-unit": "vitest -c vitest.unit.config.ts",
"test-e2e": "node scripts/build.js vue -f global -d && vitest -c vitest.e2e.config.ts",
"test-dts": "run-s build-dts test-dts-only",
"test-dts-only": "tsc -p packages/dts-built-test/tsconfig.json && tsc -p ./packages/dts-test/tsconfig.test.json",
"test-dts-only": "tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json",
"test-coverage": "vitest -c vitest.unit.config.ts --coverage",
"test-bench": "vitest bench",
"release": "node scripts/release.js",
@ -29,7 +29,7 @@
"dev-compiler": "run-p \"dev template-explorer\" serve",
"dev-sfc": "run-s dev-sfc-prepare dev-sfc-run",
"dev-sfc-prepare": "node scripts/pre-dev-sfc.js || npm run build-all-cjs",
"dev-sfc-serve": "vite packages/sfc-playground --host",
"dev-sfc-serve": "vite packages-private/sfc-playground --host",
"dev-sfc-run": "run-p \"dev compiler-sfc -f esm-browser\" \"dev vue -if esm-bundler-runtime\" \"dev vue -ipf esm-browser-runtime\" \"dev server-renderer -if esm-bundler\" dev-sfc-serve",
"serve": "serve",
"open": "open http://localhost:3000/packages/template-explorer/local.html",
@ -38,7 +38,7 @@
"build-runtime-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler-runtime && node scripts/build.js vue -f esm-browser-runtime",
"build-browser-esm": "node scripts/build.js runtime reactivity shared -af esm-bundler && node scripts/build.js vue -f esm-bundler && node scripts/build.js vue -f esm-browser",
"build-ssr-esm": "node scripts/build.js compiler-sfc server-renderer -f esm-browser",
"build-sfc-playground-self": "cd packages/sfc-playground && npm run build",
"build-sfc-playground-self": "cd packages-private/sfc-playground && npm run build",
"preinstall": "npx only-allow pnpm",
"postinstall": "simple-git-hooks"
},

View File

@ -2,4 +2,4 @@
This package is private and for testing only. It is used to verify edge cases for external libraries that build their types using Vue core types - e.g. Vuetify as in [#8376](https://github.com/vuejs/core/issues/8376).
When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages/dts-test/built.test-d.ts) to verify that the built types work correctly.
When running the `build-dts` task, this package's types are built alongside other packages. Then, during `test-dts-only` it is imported and used in [`packages-private/dts-test/built.test-d.ts`](https://github.com/vuejs/core/blob/main/packages-private/dts-test/built.test-d.ts) to verify that the built types work correctly.

View File

@ -1,5 +1,5 @@
{
"name": "@vue/dts-built-test",
"name": "dts-built-test",
"private": true,
"version": "0.0.0",
"types": "dist/index.d.ts",

View File

@ -4,4 +4,4 @@ Tests TypeScript types to ensure the types remain as expected.
- This directory is included in the root `tsconfig.json`, where package imports are aliased to `src` directories, so in IDEs and the `pnpm check` script the types are validated against source code.
- When running `tsc` with `packages/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-types`.
- When running `tsc` with `packages-private/dts-test/tsconfig.test.json`, packages are resolved using normal `node` resolution, so the types are validated against actual **built** types. This requires the types to be built first via `pnpm build-dts`.

View File

@ -1,4 +1,4 @@
import { CustomPropsNotErased } from '@vue/dts-built-test'
import { CustomPropsNotErased } from 'dts-built-test/src/index'
import { describe, expectType } from './utils'
declare module 'vue' {

View File

@ -4,6 +4,6 @@
"version": "0.0.0",
"dependencies": {
"vue": "workspace:*",
"@vue/dts-built-test": "workspace:*"
"dts-built-test": "workspace:*"
}
}

View File

@ -9,7 +9,7 @@
"serve": "vite preview"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.1.2",
"@vitejs/plugin-vue": "catalog:",
"vite": "catalog:"
},
"dependencies": {

View File

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 261 B

View File

@ -125,7 +125,7 @@ function toggleDark() {
<Download />
</button>
<a
href="https://github.com/vuejs/core/tree/main/packages/sfc-playground"
href="https://github.com/vuejs/core/tree/main/packages-private/sfc-playground"
target="_blank"
title="View on GitHub"
class="github"

View File

@ -34,7 +34,7 @@ function copyVuePlugin(): Plugin {
name: 'copy-vue',
generateBundle() {
const copyFile = (file: string) => {
const filePath = path.resolve(__dirname, file)
const filePath = path.resolve(__dirname, '../../packages', file)
const basename = path.basename(file)
if (!fs.existsSync(filePath)) {
throw new Error(
@ -49,11 +49,11 @@ function copyVuePlugin(): Plugin {
})
}
copyFile(`../vue/dist/vue.esm-browser.js`)
copyFile(`../vue/dist/vue.esm-browser.prod.js`)
copyFile(`../vue/dist/vue.runtime.esm-browser.js`)
copyFile(`../vue/dist/vue.runtime.esm-browser.prod.js`)
copyFile(`../server-renderer/dist/server-renderer.esm-browser.js`)
copyFile(`vue/dist/vue.esm-browser.js`)
copyFile(`vue/dist/vue.esm-browser.prod.js`)
copyFile(`vue/dist/vue.runtime.esm-browser.js`)
copyFile(`vue/dist/vue.runtime.esm-browser.prod.js`)
copyFile(`server-renderer/dist/server-renderer.esm-browser.js`)
},
}
}

View File

@ -0,0 +1,15 @@
<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>
<template>
<button @click="count++">{{ count }}</button>
</template>
<style>
button {
color: red;
}
</style>

View File

@ -0,0 +1 @@
This package is used for debugging issues that are related to `@vitejs/plugin-vue`, or can only be reproduced in a Vite-based setup. It aims to be as close to production as possible so Vue packages are resolved to the dist files instead of source.

View File

@ -0,0 +1,2 @@
<script type="module" src="./main.ts"></script>
<div id="app"></div>

View File

@ -0,0 +1,6 @@
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mount('#app')

View File

@ -0,0 +1,15 @@
{
"name": "vite-debug",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview"
},
"devDependencies": {
"@vitejs/plugin-vue": "catalog:",
"vite": "catalog:",
"vue": "workspace:*"
}
}

View File

@ -0,0 +1,7 @@
{
"compilerOptions": {
"module": "esnext",
"moduleResolution": "bundler"
},
"include": ["./*"]
}

View File

@ -0,0 +1,6 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({
plugins: [vue()],
})

View File

@ -12,18 +12,21 @@ catalogs:
'@babel/types':
specifier: ^7.24.7
version: 7.24.7
'@vitejs/plugin-vue':
specifier: ^5.1.2
version: 5.1.2
estree-walker:
specifier: ^2.0.2
version: 2.0.2
magic-string:
specifier: ^0.30.10
version: 0.30.10
version: 0.30.11
source-map-js:
specifier: ^1.2.0
version: 1.2.0
vite:
specifier: ^5.3.3
version: 5.3.3
specifier: ^5.4.0
version: 5.4.0
importers:
@ -169,11 +172,75 @@ importers:
version: 8.0.0(eslint@9.8.0)(typescript@5.4.5)
vite:
specifier: 'catalog:'
version: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vitest:
specifier: ^1.6.0
version: 1.6.0(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)(terser@5.31.1)
packages-private/dts-built-test:
dependencies:
'@vue/reactivity':
specifier: workspace:*
version: link:../../packages/reactivity
'@vue/shared':
specifier: workspace:*
version: link:../../packages/shared
vue:
specifier: workspace:*
version: link:../../packages/vue
packages-private/dts-test:
dependencies:
dts-built-test:
specifier: workspace:*
version: link:../dts-built-test
vue:
specifier: workspace:*
version: link:../../packages/vue
packages-private/sfc-playground:
dependencies:
'@vue/repl':
specifier: ^4.3.1
version: 4.3.1
file-saver:
specifier: ^2.0.5
version: 2.0.5
jszip:
specifier: ^3.10.1
version: 3.10.1
vue:
specifier: workspace:*
version: link:../../packages/vue
devDependencies:
'@vitejs/plugin-vue':
specifier: 'catalog:'
version: 5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
vite:
specifier: 'catalog:'
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
packages-private/template-explorer:
dependencies:
monaco-editor:
specifier: ^0.50.0
version: 0.50.0
source-map-js:
specifier: ^1.2.0
version: 1.2.0
packages-private/vite-debug:
devDependencies:
'@vitejs/plugin-vue':
specifier: 'catalog:'
version: 5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
vite:
specifier: 'catalog:'
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vue:
specifier: workspace:*
version: link:../../packages/vue
packages/compiler-core:
dependencies:
'@babel/parser':
@ -227,7 +294,7 @@ importers:
version: 2.0.2
magic-string:
specifier: 'catalog:'
version: 0.30.10
version: 0.30.11
postcss:
specifier: ^8.4.40
version: 8.4.40
@ -275,27 +342,6 @@ importers:
specifier: workspace:*
version: link:../shared
packages/dts-built-test:
dependencies:
'@vue/reactivity':
specifier: workspace:*
version: link:../reactivity
'@vue/shared':
specifier: workspace:*
version: link:../shared
vue:
specifier: workspace:*
version: link:../vue
packages/dts-test:
dependencies:
'@vue/dts-built-test':
specifier: workspace:*
version: link:../dts-built-test
vue:
specifier: workspace:*
version: link:../vue
packages/reactivity:
dependencies:
'@vue/shared':
@ -347,39 +393,8 @@ importers:
specifier: workspace:*
version: link:../vue
packages/sfc-playground:
dependencies:
'@vue/repl':
specifier: ^4.3.1
version: 4.3.1
file-saver:
specifier: ^2.0.5
version: 2.0.5
jszip:
specifier: ^3.10.1
version: 3.10.1
vue:
specifier: workspace:*
version: link:../vue
devDependencies:
'@vitejs/plugin-vue':
specifier: ^5.1.2
version: 5.1.2(vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)
vite:
specifier: 'catalog:'
version: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
packages/shared: {}
packages/template-explorer:
dependencies:
monaco-editor:
specifier: ^0.50.0
version: 0.50.0
source-map-js:
specifier: ^1.2.0
version: 1.2.0
packages/vue:
dependencies:
'@vue/compiler-dom':
@ -964,161 +979,81 @@ packages:
rollup:
optional: true
'@rollup/rollup-android-arm-eabi@4.18.0':
resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm-eabi@4.20.0':
resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.18.0':
resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==}
cpu: [arm64]
os: [android]
'@rollup/rollup-android-arm64@4.20.0':
resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.18.0':
resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-arm64@4.20.0':
resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.18.0':
resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.20.0':
resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-linux-arm-gnueabihf@4.18.0':
resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-gnueabihf@4.20.0':
resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.18.0':
resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.20.0':
resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.18.0':
resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.20.0':
resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.18.0':
resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.20.0':
resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.18.0':
resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.20.0':
resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.18.0':
resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.20.0':
resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==}
cpu: [s390x]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.18.0':
resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-gnu@4.20.0':
resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.18.0':
resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==}
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.20.0':
resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==}
cpu: [x64]
os: [linux]
'@rollup/rollup-win32-arm64-msvc@4.18.0':
resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-arm64-msvc@4.20.0':
resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.18.0':
resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.20.0':
resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.18.0':
resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==}
cpu: [x64]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.20.0':
resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==}
cpu: [x64]
@ -2582,9 +2517,6 @@ packages:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
engines: {node: '>=12'}
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
magic-string@0.30.11:
resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
@ -3103,11 +3035,6 @@ packages:
peerDependencies:
rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
rollup@4.18.0:
resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
rollup@4.20.0:
resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@ -3488,8 +3415,8 @@ packages:
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
vite@5.3.3:
resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==}
vite@5.4.0:
resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@ -3497,6 +3424,7 @@ packages:
less: '*'
lightningcss: ^1.21.0
sass: '*'
sass-embedded: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
@ -3509,6 +3437,8 @@ packages:
optional: true
sass:
optional: true
sass-embedded:
optional: true
stylus:
optional: true
sugarss:
@ -4113,99 +4043,51 @@ snapshots:
optionalDependencies:
rollup: 4.20.0
'@rollup/rollup-android-arm-eabi@4.18.0':
optional: true
'@rollup/rollup-android-arm-eabi@4.20.0':
optional: true
'@rollup/rollup-android-arm64@4.18.0':
optional: true
'@rollup/rollup-android-arm64@4.20.0':
optional: true
'@rollup/rollup-darwin-arm64@4.18.0':
optional: true
'@rollup/rollup-darwin-arm64@4.20.0':
optional: true
'@rollup/rollup-darwin-x64@4.18.0':
optional: true
'@rollup/rollup-darwin-x64@4.20.0':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.18.0':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.20.0':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.18.0':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.20.0':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.20.0':
optional: true
'@rollup/rollup-linux-arm64-musl@4.18.0':
optional: true
'@rollup/rollup-linux-arm64-musl@4.20.0':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-powerpc64le-gnu@4.20.0':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.20.0':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.20.0':
optional: true
'@rollup/rollup-linux-x64-gnu@4.18.0':
optional: true
'@rollup/rollup-linux-x64-gnu@4.20.0':
optional: true
'@rollup/rollup-linux-x64-musl@4.18.0':
optional: true
'@rollup/rollup-linux-x64-musl@4.20.0':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.18.0':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.20.0':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.18.0':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.20.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.18.0':
optional: true
'@rollup/rollup-win32-x64-msvc@4.20.0':
optional: true
@ -4441,9 +4323,9 @@ snapshots:
'@typescript-eslint/types': 8.0.0
eslint-visitor-keys: 3.4.3
'@vitejs/plugin-vue@5.1.2(vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)':
'@vitejs/plugin-vue@5.1.2(vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1))(vue@packages+vue)':
dependencies:
vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vue: link:packages/vue
'@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)(terser@5.31.1))':
@ -5809,10 +5691,6 @@ snapshots:
lru-cache@7.18.3: {}
magic-string@0.30.10:
dependencies:
'@jridgewell/sourcemap-codec': 1.4.15
magic-string@0.30.11:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@ -6365,28 +6243,6 @@ snapshots:
'@rollup/plugin-inject': 5.0.5(rollup@4.20.0)
rollup: 4.20.0
rollup@4.18.0:
dependencies:
'@types/estree': 1.0.5
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.18.0
'@rollup/rollup-android-arm64': 4.18.0
'@rollup/rollup-darwin-arm64': 4.18.0
'@rollup/rollup-darwin-x64': 4.18.0
'@rollup/rollup-linux-arm-gnueabihf': 4.18.0
'@rollup/rollup-linux-arm-musleabihf': 4.18.0
'@rollup/rollup-linux-arm64-gnu': 4.18.0
'@rollup/rollup-linux-arm64-musl': 4.18.0
'@rollup/rollup-linux-powerpc64le-gnu': 4.18.0
'@rollup/rollup-linux-riscv64-gnu': 4.18.0
'@rollup/rollup-linux-s390x-gnu': 4.18.0
'@rollup/rollup-linux-x64-gnu': 4.18.0
'@rollup/rollup-linux-x64-musl': 4.18.0
'@rollup/rollup-win32-arm64-msvc': 4.18.0
'@rollup/rollup-win32-ia32-msvc': 4.18.0
'@rollup/rollup-win32-x64-msvc': 4.18.0
fsevents: 2.3.3
rollup@4.20.0:
dependencies:
'@types/estree': 1.0.5
@ -6778,22 +6634,23 @@ snapshots:
debug: 4.3.5
pathe: 1.1.2
picocolors: 1.0.1
vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
vite@5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1):
vite@5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1):
dependencies:
esbuild: 0.21.5
postcss: 8.4.40
rollup: 4.18.0
rollup: 4.20.0
optionalDependencies:
'@types/node': 20.14.14
fsevents: 2.3.3
@ -6819,7 +6676,7 @@ snapshots:
strip-literal: 2.1.0
tinybench: 2.8.0
tinypool: 0.8.4
vite: 5.3.3(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vite: 5.4.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
vite-node: 1.6.0(@types/node@20.14.14)(sass@1.77.8)(terser@5.31.1)
why-is-node-running: 2.2.2
optionalDependencies:
@ -6829,6 +6686,7 @@ snapshots:
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- supports-color

View File

@ -1,5 +1,6 @@
packages:
- 'packages/*'
- 'packages-private/*'
catalog:
'@babel/parser': ^7.24.7
@ -7,4 +8,5 @@ catalog:
'estree-walker': ^2.0.2
'magic-string': ^0.30.10
'source-map-js': ^1.2.0
'vite': ^5.3.3
'vite': ^5.4.0
'@vitejs/plugin-vue': ^5.1.2

View File

@ -2,6 +2,7 @@
import assert from 'node:assert/strict'
import { createRequire } from 'node:module'
import { fileURLToPath } from 'node:url'
import fs from 'node:fs'
import path from 'node:path'
import replace from '@rollup/plugin-replace'
import json from '@rollup/plugin-json'
@ -33,7 +34,11 @@ const __dirname = fileURLToPath(new URL('.', import.meta.url))
const masterVersion = require('./package.json').version
const consolidatePkg = require('@vue/consolidate/package.json')
const packagesDir = path.resolve(__dirname, 'packages')
const privatePackages = fs.readdirSync('packages-private')
const pkgBase = privatePackages.includes(process.env.TARGET)
? `packages-private`
: `packages`
const packagesDir = path.resolve(__dirname, pkgBase)
const packageDir = path.resolve(packagesDir, process.env.TARGET)
const resolve = (/** @type {string} */ p) => path.resolve(packageDir, p)

View File

@ -16,7 +16,7 @@ nr build core --formats cjs
```
*/
import fs from 'node:fs/promises'
import fs from 'node:fs'
import { parseArgs } from 'node:util'
import { existsSync, readFileSync } from 'node:fs'
import path from 'node:path'
@ -84,7 +84,7 @@ const sizeDir = path.resolve('temp/size')
run()
async function run() {
if (writeSize) await fs.mkdir(sizeDir, { recursive: true })
if (writeSize) fs.mkdirSync(sizeDir, { recursive: true })
const removeCache = scanEnums()
try {
const resolvedTargets = targets.length
@ -151,13 +151,18 @@ async function runParallel(maxConcurrency, source, iteratorFn) {
return Promise.all(ret)
}
const privatePackages = fs.readdirSync('packages-private')
/**
* Builds the target.
* @param {string} target - The target to build.
* @returns {Promise<void>} - A promise representing the build process.
*/
async function build(target) {
const pkgDir = path.resolve(`packages/${target}`)
const pkgBase = privatePackages.includes(target)
? `packages-private`
: `packages`
const pkgDir = path.resolve(`${pkgBase}/${target}`)
const pkg = JSON.parse(readFileSync(`${pkgDir}/package.json`, 'utf-8'))
// if this is a full build (no specific targets), ignore private packages
@ -167,7 +172,7 @@ async function build(target) {
// if building a specific format, do not remove dist.
if (!formats && existsSync(`${pkgDir}/dist`)) {
await fs.rm(`${pkgDir}/dist`, { recursive: true })
fs.rmSync(`${pkgDir}/dist`, { recursive: true })
}
const env =
@ -232,7 +237,7 @@ async function checkFileSize(filePath) {
if (!existsSync(filePath)) {
return
}
const file = await fs.readFile(filePath)
const file = fs.readFileSync(filePath)
const fileName = path.basename(filePath)
const gzipped = gzipSync(file)
@ -247,7 +252,7 @@ async function checkFileSize(filePath) {
)
if (writeSize)
await fs.writeFile(
fs.writeFileSync(
path.resolve(sizeDir, `${fileName}.json`),
JSON.stringify({
file: fileName,

View File

@ -6,19 +6,22 @@ import { spawn } from 'node:child_process'
const require = createRequire(import.meta.url)
export const targets = fs.readdirSync('packages').filter(f => {
if (
!fs.statSync(`packages/${f}`).isDirectory() ||
!fs.existsSync(`packages/${f}/package.json`)
) {
return false
}
const pkg = require(`../packages/${f}/package.json`)
if (pkg.private && !pkg.buildOptions) {
return false
}
return true
})
export const targets = fs
.readdirSync('packages')
.filter(f => {
if (
!fs.statSync(`packages/${f}`).isDirectory() ||
!fs.existsSync(`packages/${f}/package.json`)
) {
return false
}
const pkg = require(`../packages/${f}/package.json`)
if (pkg.private && !pkg.buildOptions) {
return false
}
return true
})
.concat('template-explorer')
/**
*

View File

@ -30,12 +30,13 @@
"include": [
"packages/global.d.ts",
"packages/*/src",
"packages-private/*/src",
"packages/runtime-dom/types/jsx.d.ts",
"packages/*/__tests__",
"packages/dts-test",
"packages-private/dts-test",
"packages/vue/jsx-runtime",
"scripts/*",
"rollup.*.js"
],
"exclude": ["packages/sfc-playground/src/vue-dev-proxy*"]
"exclude": ["packages-private/sfc-playground/src/vue-dev-proxy*"]
}

View File

@ -39,7 +39,7 @@ export default defineConfig({
'packages/runtime-dom/src/components/Transition*',
// mostly entries
'packages/vue-compat/**',
'packages/sfc-playground/**',
'packages-private/**',
'scripts/**',
],
},