mirror of https://github.com/vuejs/core.git
workflow: move private packages to separate directory
This commit is contained in:
parent
cac1e4e7f6
commit
6a5b2098e1
|
@ -236,7 +236,7 @@ Tests that test against source code are grouped under `nr test-unit`, while test
|
||||||
|
|
||||||
### `nr test-dts`
|
### `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
|
## Project Structure
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ Test coverage is continuously deployed at https://coverage.vuejs.org. PRs that i
|
||||||
|
|
||||||
### Testing Type Definition Correctness
|
### 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
|
## Financial Contribution
|
||||||
|
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
{
|
{
|
||||||
groupName: 'playground',
|
groupName: 'playground',
|
||||||
matchFileNames: [
|
matchFileNames: [
|
||||||
'packages/sfc-playground/package.json',
|
'packages-private/sfc-playground/package.json',
|
||||||
'packages/template-explorer/package.json',
|
'packages-private/template-explorer/package.json',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,7 +76,11 @@ export default tseslint.config(
|
||||||
|
|
||||||
// tests, no restrictions (runs in Node / Vitest with jsdom)
|
// 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 },
|
plugins: { vitest },
|
||||||
languageOptions: {
|
languageOptions: {
|
||||||
globals: {
|
globals: {
|
||||||
|
@ -119,7 +123,10 @@ export default tseslint.config(
|
||||||
|
|
||||||
// Private package, browser only + no syntax restrictions
|
// Private package, browser only + no syntax restrictions
|
||||||
{
|
{
|
||||||
files: ['packages/template-explorer/**', 'packages/sfc-playground/**'],
|
files: [
|
||||||
|
'packages-private/template-explorer/**',
|
||||||
|
'packages-private/sfc-playground/**',
|
||||||
|
],
|
||||||
rules: {
|
rules: {
|
||||||
'no-restricted-globals': ['error', ...NodeGlobals],
|
'no-restricted-globals': ['error', ...NodeGlobals],
|
||||||
'no-restricted-syntax': ['error', banConstEnum],
|
'no-restricted-syntax': ['error', banConstEnum],
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
"test-unit": "vitest -c vitest.unit.config.ts",
|
"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-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": "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-coverage": "vitest -c vitest.unit.config.ts --coverage",
|
||||||
"test-bench": "vitest bench",
|
"test-bench": "vitest bench",
|
||||||
"release": "node scripts/release.js",
|
"release": "node scripts/release.js",
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
"dev-compiler": "run-p \"dev template-explorer\" serve",
|
"dev-compiler": "run-p \"dev template-explorer\" serve",
|
||||||
"dev-sfc": "run-s dev-sfc-prepare dev-sfc-run",
|
"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-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",
|
"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",
|
"serve": "serve",
|
||||||
"open": "open http://localhost:3000/packages/template-explorer/local.html",
|
"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-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-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-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",
|
"preinstall": "npx only-allow pnpm",
|
||||||
"postinstall": "simple-git-hooks"
|
"postinstall": "simple-git-hooks"
|
||||||
},
|
},
|
||||||
|
|
|
@ -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).
|
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.
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "@vue/dts-built-test",
|
"name": "dts-built-test",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
|
@ -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.
|
- 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-dts`.
|
- 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`.
|
|
@ -1,4 +1,4 @@
|
||||||
import { CustomPropsNotErased } from '@vue/dts-built-test'
|
import { CustomPropsNotErased } from 'dts-built-test/src/index'
|
||||||
import { describe, expectType } from './utils'
|
import { describe, expectType } from './utils'
|
||||||
|
|
||||||
declare module 'vue' {
|
declare module 'vue' {
|
|
@ -4,6 +4,6 @@
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"vue": "workspace:*",
|
"vue": "workspace:*",
|
||||||
"@vue/dts-built-test": "workspace:*"
|
"dts-built-test": "workspace:*"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,7 +9,7 @@
|
||||||
"serve": "vite preview"
|
"serve": "vite preview"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^5.1.2",
|
"@vitejs/plugin-vue": "catalog:",
|
||||||
"vite": "catalog:"
|
"vite": "catalog:"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 261 B |
|
@ -125,7 +125,7 @@ function toggleDark() {
|
||||||
<Download />
|
<Download />
|
||||||
</button>
|
</button>
|
||||||
<a
|
<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"
|
target="_blank"
|
||||||
title="View on GitHub"
|
title="View on GitHub"
|
||||||
class="github"
|
class="github"
|
|
@ -34,7 +34,7 @@ function copyVuePlugin(): Plugin {
|
||||||
name: 'copy-vue',
|
name: 'copy-vue',
|
||||||
generateBundle() {
|
generateBundle() {
|
||||||
const copyFile = (file: string) => {
|
const copyFile = (file: string) => {
|
||||||
const filePath = path.resolve(__dirname, file)
|
const filePath = path.resolve(__dirname, '../../packages', file)
|
||||||
const basename = path.basename(file)
|
const basename = path.basename(file)
|
||||||
if (!fs.existsSync(filePath)) {
|
if (!fs.existsSync(filePath)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
|
@ -49,11 +49,11 @@ function copyVuePlugin(): Plugin {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
copyFile(`../vue/dist/vue.esm-browser.js`)
|
copyFile(`vue/dist/vue.esm-browser.js`)
|
||||||
copyFile(`../vue/dist/vue.esm-browser.prod.js`)
|
copyFile(`vue/dist/vue.esm-browser.prod.js`)
|
||||||
copyFile(`../vue/dist/vue.runtime.esm-browser.js`)
|
copyFile(`vue/dist/vue.runtime.esm-browser.js`)
|
||||||
copyFile(`../vue/dist/vue.runtime.esm-browser.prod.js`)
|
copyFile(`vue/dist/vue.runtime.esm-browser.prod.js`)
|
||||||
copyFile(`../server-renderer/dist/server-renderer.esm-browser.js`)
|
copyFile(`server-renderer/dist/server-renderer.esm-browser.js`)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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>
|
|
@ -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.
|
|
@ -0,0 +1,2 @@
|
||||||
|
<script type="module" src="./main.ts"></script>
|
||||||
|
<div id="app"></div>
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { createApp } from 'vue'
|
||||||
|
import App from './App.vue'
|
||||||
|
|
||||||
|
const app = createApp(App)
|
||||||
|
|
||||||
|
app.mount('#app')
|
|
@ -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:*"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "bundler"
|
||||||
|
},
|
||||||
|
"include": ["./*"]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
import { defineConfig } from 'vite'
|
||||||
|
import vue from '@vitejs/plugin-vue'
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [vue()],
|
||||||
|
})
|
119
pnpm-lock.yaml
119
pnpm-lock.yaml
|
@ -12,6 +12,9 @@ catalogs:
|
||||||
'@babel/types':
|
'@babel/types':
|
||||||
specifier: ^7.25.2
|
specifier: ^7.25.2
|
||||||
version: 7.25.2
|
version: 7.25.2
|
||||||
|
'@vitejs/plugin-vue':
|
||||||
|
specifier: ^5.1.2
|
||||||
|
version: 5.1.2
|
||||||
estree-walker:
|
estree-walker:
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2
|
version: 2.0.2
|
||||||
|
@ -180,6 +183,70 @@ importers:
|
||||||
specifier: ^2.0.0
|
specifier: ^2.0.0
|
||||||
version: 2.0.5(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)
|
version: 2.0.5(@types/node@20.14.14)(jsdom@24.1.1)(sass@1.77.8)
|
||||||
|
|
||||||
|
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))(vue@packages+vue)
|
||||||
|
vite:
|
||||||
|
specifier: 'catalog:'
|
||||||
|
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)
|
||||||
|
|
||||||
|
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))(vue@packages+vue)
|
||||||
|
vite:
|
||||||
|
specifier: 'catalog:'
|
||||||
|
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)
|
||||||
|
vue:
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../packages/vue
|
||||||
|
|
||||||
packages/compiler-core:
|
packages/compiler-core:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser':
|
'@babel/parser':
|
||||||
|
@ -281,27 +348,6 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../shared
|
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:
|
packages/reactivity:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/shared':
|
'@vue/shared':
|
||||||
|
@ -357,39 +403,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../vue
|
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.4.0(@types/node@20.14.14)(sass@1.77.8))(vue@packages+vue)
|
|
||||||
vite:
|
|
||||||
specifier: 'catalog:'
|
|
||||||
version: 5.4.0(@types/node@20.14.14)(sass@1.77.8)
|
|
||||||
|
|
||||||
packages/shared: {}
|
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:
|
packages/vue:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-dom':
|
'@vue/compiler-dom':
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
packages:
|
packages:
|
||||||
- 'packages/*'
|
- 'packages/*'
|
||||||
|
- 'packages-private/*'
|
||||||
|
|
||||||
catalog:
|
catalog:
|
||||||
'@babel/parser': ^7.25.3
|
'@babel/parser': ^7.25.3
|
||||||
|
@ -8,3 +9,4 @@ catalog:
|
||||||
'magic-string': ^0.30.11
|
'magic-string': ^0.30.11
|
||||||
'source-map-js': ^1.2.0
|
'source-map-js': ^1.2.0
|
||||||
'vite': ^5.4.0
|
'vite': ^5.4.0
|
||||||
|
'@vitejs/plugin-vue': ^5.1.2
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import assert from 'node:assert/strict'
|
import assert from 'node:assert/strict'
|
||||||
import { createRequire } from 'node:module'
|
import { createRequire } from 'node:module'
|
||||||
import { fileURLToPath } from 'node:url'
|
import { fileURLToPath } from 'node:url'
|
||||||
|
import fs from 'node:fs'
|
||||||
import path from 'node:path'
|
import path from 'node:path'
|
||||||
import replace from '@rollup/plugin-replace'
|
import replace from '@rollup/plugin-replace'
|
||||||
import json from '@rollup/plugin-json'
|
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 masterVersion = require('./package.json').version
|
||||||
const consolidatePkg = require('@vue/consolidate/package.json')
|
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 packageDir = path.resolve(packagesDir, process.env.TARGET)
|
||||||
|
|
||||||
const resolve = (/** @type {string} */ p) => path.resolve(packageDir, p)
|
const resolve = (/** @type {string} */ p) => path.resolve(packageDir, p)
|
||||||
|
|
|
@ -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 { parseArgs } from 'node:util'
|
||||||
import { existsSync, readFileSync } from 'node:fs'
|
import { existsSync, readFileSync } from 'node:fs'
|
||||||
import path from 'node:path'
|
import path from 'node:path'
|
||||||
|
@ -84,7 +84,7 @@ const sizeDir = path.resolve('temp/size')
|
||||||
run()
|
run()
|
||||||
|
|
||||||
async function run() {
|
async function run() {
|
||||||
if (writeSize) await fs.mkdir(sizeDir, { recursive: true })
|
if (writeSize) fs.mkdirSync(sizeDir, { recursive: true })
|
||||||
const removeCache = scanEnums()
|
const removeCache = scanEnums()
|
||||||
try {
|
try {
|
||||||
const resolvedTargets = targets.length
|
const resolvedTargets = targets.length
|
||||||
|
@ -151,13 +151,18 @@ async function runParallel(maxConcurrency, source, iteratorFn) {
|
||||||
return Promise.all(ret)
|
return Promise.all(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const privatePackages = fs.readdirSync('packages-private')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds the target.
|
* Builds the target.
|
||||||
* @param {string} target - The target to build.
|
* @param {string} target - The target to build.
|
||||||
* @returns {Promise<void>} - A promise representing the build process.
|
* @returns {Promise<void>} - A promise representing the build process.
|
||||||
*/
|
*/
|
||||||
async function build(target) {
|
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'))
|
const pkg = JSON.parse(readFileSync(`${pkgDir}/package.json`, 'utf-8'))
|
||||||
|
|
||||||
// if this is a full build (no specific targets), ignore private packages
|
// 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 building a specific format, do not remove dist.
|
||||||
if (!formats && existsSync(`${pkgDir}/dist`)) {
|
if (!formats && existsSync(`${pkgDir}/dist`)) {
|
||||||
await fs.rm(`${pkgDir}/dist`, { recursive: true })
|
fs.rmSync(`${pkgDir}/dist`, { recursive: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
const env =
|
const env =
|
||||||
|
@ -232,7 +237,7 @@ async function checkFileSize(filePath) {
|
||||||
if (!existsSync(filePath)) {
|
if (!existsSync(filePath)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const file = await fs.readFile(filePath)
|
const file = fs.readFileSync(filePath)
|
||||||
const fileName = path.basename(filePath)
|
const fileName = path.basename(filePath)
|
||||||
|
|
||||||
const gzipped = gzipSync(file)
|
const gzipped = gzipSync(file)
|
||||||
|
@ -247,7 +252,7 @@ async function checkFileSize(filePath) {
|
||||||
)
|
)
|
||||||
|
|
||||||
if (writeSize)
|
if (writeSize)
|
||||||
await fs.writeFile(
|
fs.writeFileSync(
|
||||||
path.resolve(sizeDir, `${fileName}.json`),
|
path.resolve(sizeDir, `${fileName}.json`),
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
file: fileName,
|
file: fileName,
|
||||||
|
|
|
@ -6,7 +6,9 @@ import { spawn } from 'node:child_process'
|
||||||
|
|
||||||
const require = createRequire(import.meta.url)
|
const require = createRequire(import.meta.url)
|
||||||
|
|
||||||
export const targets = fs.readdirSync('packages').filter(f => {
|
export const targets = fs
|
||||||
|
.readdirSync('packages')
|
||||||
|
.filter(f => {
|
||||||
if (
|
if (
|
||||||
!fs.statSync(`packages/${f}`).isDirectory() ||
|
!fs.statSync(`packages/${f}`).isDirectory() ||
|
||||||
!fs.existsSync(`packages/${f}/package.json`)
|
!fs.existsSync(`packages/${f}/package.json`)
|
||||||
|
@ -18,7 +20,8 @@ export const targets = fs.readdirSync('packages').filter(f => {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
.concat('template-explorer')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|
|
@ -32,12 +32,13 @@
|
||||||
"include": [
|
"include": [
|
||||||
"packages/global.d.ts",
|
"packages/global.d.ts",
|
||||||
"packages/*/src",
|
"packages/*/src",
|
||||||
|
"packages-private/*/src",
|
||||||
"packages/runtime-dom/types/jsx.d.ts",
|
"packages/runtime-dom/types/jsx.d.ts",
|
||||||
"packages/*/__tests__",
|
"packages/*/__tests__",
|
||||||
"packages/dts-test",
|
"packages-private/dts-test",
|
||||||
"packages/vue/jsx-runtime",
|
"packages/vue/jsx-runtime",
|
||||||
"scripts/*",
|
"scripts/*",
|
||||||
"rollup.*.js"
|
"rollup.*.js"
|
||||||
],
|
],
|
||||||
"exclude": ["packages/sfc-playground/src/vue-dev-proxy*"]
|
"exclude": ["packages-private/sfc-playground/src/vue-dev-proxy*"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ export default defineConfig({
|
||||||
'packages/runtime-dom/src/components/Transition*',
|
'packages/runtime-dom/src/components/Transition*',
|
||||||
// mostly entries
|
// mostly entries
|
||||||
'packages/vue-compat/**',
|
'packages/vue-compat/**',
|
||||||
'packages/sfc-playground/**',
|
'packages-private/**',
|
||||||
'scripts/**',
|
'scripts/**',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue