diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 48a0bd7773b0d7..beab59a2df5ac9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -63,7 +63,7 @@ module.exports = defineConfig({ 'node/no-extraneous-import': [ 'error', { - allowModules: ['vite', 'less', 'sass'] + allowModules: ['vite', 'less', 'sass', 'vitest'] } ], 'node/no-extraneous-require': [ @@ -103,13 +103,13 @@ module.exports = defineConfig({ } }, { - files: ['packages/vite/types/**'], + files: ['packages/vite/types/**', '*.spec.ts'], rules: { 'node/no-extraneous-import': 'off' } }, { - files: ['packages/playground/**'], + files: ['playground/**'], rules: { 'node/no-extraneous-import': 'off', 'node/no-extraneous-require': 'off' diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 06fe0e7ea2aaff..17898db2741284 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,11 +1,7 @@ { "extends": ["config:base", "schedule:weekly", "group:allNonMajor"], "labels": ["dependencies"], - "ignorePaths": [ - "packages/playground/**", - "packages/create-vite/template-*/**", - "**/__tests__/**" - ], + "ignorePaths": ["**/__tests__/**"], "pin": false, "rangeStrategy": "bump", "node": false, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cde7dfb03825ed..b1c663db40e80f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ on: - feat/* - fix/* - perf/* + - v1 + - v2 pull_request: workflow_dispatch: @@ -27,12 +29,17 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node_version: [12, 14, 16, 17] + node_version: [14, 16, 18] include: - os: macos-latest node_version: 16 + - os: macos-latest + node_version: 18 - os: windows-latest node_version: 16 + # Maybe bug with jest on windows and node-v18 + # - os: windows-latest + # node_version: 18 fail-fast: false name: "Build&Test: node-${{ matrix.node_version }}, ${{ matrix.os }}" @@ -42,8 +49,6 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 - with: - version: 6 - name: Set node version to ${{ matrix.node_version }} uses: actions/setup-node@v3 @@ -63,6 +68,9 @@ jobs: - name: Build plugin-react run: pnpm run build-plugin-react + - name: Test unit + run: pnpm run test-unit + - name: Test serve run: pnpm run test-serve -- --runInBand @@ -80,8 +88,6 @@ jobs: - name: Install pnpm uses: pnpm/action-setup@v2 - with: - version: 6 - name: Set node version to 16 uses: actions/setup-node@v3 diff --git a/.github/workflows/semantic-pull-request.yml b/.github/workflows/semantic-pull-request.yml new file mode 100644 index 00000000000000..df554b38e75246 --- /dev/null +++ b/.github/workflows/semantic-pull-request.yml @@ -0,0 +1,18 @@ +name: Semantic Pull Request + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + main: + runs-on: ubuntu-latest + name: Semantic Pull Request + steps: + - name: Validate PR title + uses: amannn/action-semantic-pull-request@v4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 44abdd7bf563db..9194d44b544c4e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,15 @@ -.DS_Store -node_modules !**/glob-import/dir/node_modules -dist -dist-ssr -TODOs.md -*.log -temp -explorations +.DS_Store .idea -*.local -/packages/vite/LICENSE *.cpuprofile +*.local +*.log /.vscode/ +/packages/vite/LICENSE +dist +dist-ssr +explorations +node_modules +playground-temp +temp +TODOs.md diff --git a/.prettierignore b/.prettierignore index c624a3a21eecfe..ad4762a457c436 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,6 +8,6 @@ LICENSE.md .prettierignore pnpm-lock.yaml pnpm-workspace.yaml -packages/playground/tsconfig-json-load-error/has-error/tsconfig.json -packages/playground/html/invalid.html -packages/playground/worker/classic-worker.js +playground/tsconfig-json-load-error/has-error/tsconfig.json +playground/html/invalid.html +playground/worker/classic-worker.js diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b105499159bebb..e620377c75408f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,7 +26,7 @@ If you want to use break point and explore code execution you can use the ["Run 3. Click on the "JavaScript Debug Terminal" button. -4. It will open a terminal, then go to `packages/playground/xxx` and run `pnpm run dev`. +4. It will open a terminal, then go to `playground/xxx` and run `pnpm run dev`. 5. The execution will stop and you'll use the [Debug toolbar](https://code.visualstudio.com/docs/editor/debugging#_debug-actions) to continue, step over, restart the process... @@ -42,7 +42,7 @@ Some errors are masked and hidden away because of the layers of abstraction and 1. In the sources panel in the right column, click the play button to resume execution and allow the tests to run which will open a Chromium instance. -1. Focusing the Chomium instance, you can open the browser devtools and inspect the console there to find the underlying problems. +1. Focusing the Chromium instance, you can open the browser devtools and inspect the console there to find the underlying problems. 1. To close everything, just stop the test process back in your terminal. @@ -67,22 +67,32 @@ And re-run `pnpm install` to link the package. ## Running Tests -Each package under `packages/playground/` contains a `__tests__` directory. The tests are run using [Jest](https://jestjs.io/) + [Playwright](https://playwright.dev/) with custom integrations to make writing tests simple. The detailed setup is inside `jest.config.js` and `scripts/jest*` files. +### Integration Tests -Before running the tests, make sure that [Vite has been built](#repo-setup). On Windows, you may want to [activate Developer Mode](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) to solve [issues with symlink creation for non-admins](https://github.com/vitejs/vite/issues/7390). +Each package under `playground/` contains a `__tests__` directory. The tests are run using [Jest](https://jestjs.io/) + [Playwright](https://playwright.dev/) with custom integrations to make writing tests simple. The detailed setup is inside `jest.config.js` and `scripts/jest*` files. -Each test can be run under either dev server mode or build mode. +Before running the tests, make sure that [Vite has been built](#repo-setup). On Windows, you may want to [activate Developer Mode](https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) to solve [issues with symlink creation for non-admins](https://github.com/vitejs/vite/issues/7390). Also you may want to [set git `core.symlinks` to `true` to solve issues with symlinks in git](https://github.com/vitejs/vite/issues/5242). -- `pnpm test` by default runs every test in both serve and build mode. +Each integration test can be run under either dev server mode or build mode. + +- `pnpm test` by default runs every integration test in both serve and build mode, and also unit tests. - `pnpm run test-serve` runs tests only under serve mode. This is just calling `jest` so you can pass any Jest flags to this command. Since Jest will attempt to run tests in parallel, if your machine has many cores this may cause flaky test failures with multiple Playwright instances running at the same time. You can force the tests to run in series with `pnpm run test-serve -- --runInBand`. - `pnpm run test-build` runs tests only under build mode. -- You can also use `pnpm run test-serve -- [match]` or `pnpm run test-build -- [match]` to run tests in a specific playground package, e.g. `pnpm run test-serve -- css` will run tests for both `playground/css` and `playground/css-codesplit` under serve mode. +- You can also use `pnpm run test-serve -- [match]` or `pnpm run test-build -- [match]` to run tests in a specific playground package, e.g. `pnpm run test-serve -- asset` will run tests for both `playground/asset` and `vite/src/node/__tests__/asset` under serve mode and `vite/src/node/__tests__/**/*` just run in serve mode. Note package matching is not available for the `pnpm test` script, which always runs all tests. +### Unit Tests + +Other than tests under `playground/` for integration tests, packages might contains unit tests under their `__tests__` directory. Unit tests are powered by [Vitest](https://vitest.dev/). The detailed config is inside `vitest.config.ts` files. + +- `pnpm run test-unit` runs unit tests under each package. + +- You can also use `pnpm run test-unit -- [match]` to run related tests. + ### Test Env and Helpers Inside playground tests, a global `page` object is automatically available, which is a Playwright [`Page`](https://playwright.dev/docs/api/class-page) instance that has already navigated to the served page of the current playground. So writing a test is as simple as: @@ -93,18 +103,20 @@ test('should work', async () => { }) ``` -Some common test helpers, e.g. `testDir`, `isBuild` or `editFile` are available in `packages/playground/testUtils.ts`. +Some common test helpers, e.g. `testDir`, `isBuild` or `editFile` are available in `playground/testUtils.ts`. + +Note: The test build environment uses a [different default set of Vite config](https://github.com/vitejs/vite/blob/9c6501d9c363eaa3c1e7708d531fb2a92b633db6/scripts/jestPerTestSetup.ts#L102-L122) to skip transpilation during tests to make it faster. This may produce a different result compared to the default production build. ### Extending the Test Suite -To add new tests, you should find a related playground to the fix or feature (or create a new one). As an example, static assets loading are tested in the [assets playground](https://github.com/vitejs/vite/tree/main/packages/playground/assets). In this Vite App, there is a test for `?raw` imports, with [a section is defined in the `index.html` for it](https://github.com/vitejs/vite/blob/71215533ac60e8ff566dc3467feabfc2c71a01e2/packages/playground/assets/index.html#L121): +To add new tests, you should find a related playground to the fix or feature (or create a new one). As an example, static assets loading are tested in the [assets playground](https://github.com/vitejs/vite/tree/main/playground/assets). In this Vite App, there is a test for `?raw` imports, with [a section is defined in the `index.html` for it](https://github.com/vitejs/vite/blob/71215533ac60e8ff566dc3467feabfc2c71a01e2/playground/assets/index.html#L121): ```html
```
-This will be modified [with the result of a file import](https://github.com/vitejs/vite/blob/71215533ac60e8ff566dc3467feabfc2c71a01e2/packages/playground/assets/index.html#L151):
+This will be modified [with the result of a file import](https://github.com/vitejs/vite/blob/main/playground/assets/index.html#L151):
```js
import rawSvg from './nested/fragment.svg?raw'
@@ -119,7 +131,7 @@ function text(el, text) {
}
```
-In the [spec tests](https://github.com/vitejs/vite/blob/71215533ac60e8ff566dc3467feabfc2c71a01e2/packages/playground/assets/__tests__/assets.spec.ts#L180), the modifications to the DOM listed above are used to test this feature:
+In the [spec tests](https://github.com/vitejs/vite/blob/main/playground/assets/__tests__/assets.spec.ts#L180), the modifications to the DOM listed above are used to test this feature:
```js
test('?raw import', async () => {
@@ -136,7 +148,7 @@ To work around this, playground packages that uses the `file:` protocol should a
```jsonc
"scripts": {
//...
- "postinstall": "ts-node ../../../scripts/patchFileDeps.ts"
+ "postinstall": "ts-node ../../scripts/patchFileDeps.ts"
}
```
diff --git a/README.md b/README.md
index 546014a12c7116..a6f13829f2635f 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,8 @@ In addition, Vite is highly extensible via its [Plugin API](https://vitejs.dev/g
## Packages
+> This branch is for the upcoming v3.0, if you are looking for current stable releases, check the [`v2` branch](https://github.com/vitejs/vite/tree/v2) instead.
+
| Package | Version (click for changelogs) |
| ------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- |
| [vite](packages/vite) | [![vite version](https://img.shields.io/npm/v/vite.svg?label=%20)](packages/vite/CHANGELOG.md) |
diff --git a/docs/.vitepress/config.js b/docs/.vitepress/config.ts
similarity index 94%
rename from docs/.vitepress/config.js
rename to docs/.vitepress/config.ts
index ee76a29986d3fb..4659ea5ab7ae4f 100644
--- a/docs/.vitepress/config.js
+++ b/docs/.vitepress/config.ts
@@ -1,9 +1,6 @@
-// @ts-check
+import { defineConfig } from 'vitepress'
-/**
- * @type {import('vitepress').UserConfig}
- */
-module.exports = {
+export default defineConfig({
title: 'Vite',
description: 'Next Generation Frontend Tooling',
head: [['link', { rel: 'icon', type: 'image/svg+xml', href: '/logo.svg' }]],
@@ -64,6 +61,15 @@ module.exports = {
}
]
},
+ {
+ text: 'v3 (next)',
+ items: [
+ {
+ text: 'v2.x (stable)',
+ link: 'https://v2.vitejs.dev'
+ }
+ ]
+ },
{
text: 'Languages',
items: [
@@ -169,4 +175,4 @@ module.exports = {
]
}
}
-}
+})
diff --git a/docs/config/index.md b/docs/config/index.md
index d7560e58736a43..666f5f39a5511c 100644
--- a/docs/config/index.md
+++ b/docs/config/index.md
@@ -28,12 +28,14 @@ vite --config my-config.js
```
::: tip NOTE
-Vite will replace `__filename`, `__dirname`, and `import.meta.url` in **CommonJS** and **TypeScript** config files. Using these as variable names will result in an error:
+Vite will replace `__filename`, `__dirname`, and `import.meta.url` in config files and its deps. Using these as variable names or passing as a parameter to a function with string double quote (example `console.log`) will result in an error:
```js
const __filename = "value"
// will be transformed to
const "path/vite.config.js" = "value"
+
+console.log("import.meta.url") // break error on build
```
:::
@@ -94,23 +96,29 @@ If the config needs to call async function, it can export a async function inste
export default defineConfig(async ({ command, mode }) => {
const data = await asyncFunction()
return {
- // build specific config
+ // vite config
}
})
```
### Environment Variables
-Vite doesn't load `.env` files by default as the files to load can only be determined after evaluating the Vite config, for example, the `root` and `envDir` options affects the loading behaviour. However, you can use the exported `loadEnv` helper to load the specific `.env` file if needed.
+Environmental Variables can be obtained from `process.env` as usual.
+
+Note that Vite doesn't load `.env` files by default as the files to load can only be determined after evaluating the Vite config, for example, the `root` and `envDir` options affects the loading behaviour. However, you can use the exported `loadEnv` helper to load the specific `.env` file if needed.
```js
import { defineConfig, loadEnv } from 'vite'
export default defineConfig(({ command, mode }) => {
- // Load env file based on `mode` in the current working directory
- const env = loadEnv(mode, process.cwd())
+ // Load env file based on `mode` in the current working directory.
+ // Set the third parameter to '' to load all env regardless of the `VITE_` prefix.
+ const env = loadEnv(mode, process.cwd(), '')
return {
- // build specific config
+ // vite config
+ define: {
+ __APP_ENV__: env.APP_ENV
+ }
}
})
```
@@ -158,7 +166,7 @@ export default defineConfig(({ command, mode }) => {
- To be consistent with [esbuild behavior](https://esbuild.github.io/api/#define), expressions must either be a JSON object (null, boolean, number, string, array, or object) or a single identifier.
- - Replacements are performed only when the match is surrounded by word boundaries (`\b`).
+ - Replacements are performed only when the match isn't surrounded by other letters, numbers, `_` or `$`.
::: warning
Because it's implemented as straightforward text replacements without any syntax analysis, we recommend using `define` for CONSTANTS only.
@@ -178,6 +186,20 @@ export default defineConfig(({ command, mode }) => {
:::
+ ::: tip NOTE
+ Since dev and build implement `define` differently, we should avoid some use cases to avoid inconsistency.
+
+ Example:
+
+ ```js
+ const obj = {
+ __NAME__, // Don't define object shorthand property names
+ __KEY__: value // Don't define object key
+ }
+ ```
+
+ :::
+
### plugins
- **Type:** `(Plugin | Plugin[])[]`
@@ -235,7 +257,7 @@ export default defineConfig(({ command, mode }) => {
{
"exports": {
".": {
- "import": "./index.esm.js",
+ "import": "./index.esm.mjs",
"require": "./index.cjs.js"
}
}
@@ -304,7 +326,11 @@ export default defineConfig(({ command, mode }) => {
- **Type:** `string | (postcss.ProcessOptions & { plugins?: postcss.Plugin[] })`
- Inline PostCSS config (expects the same format as `postcss.config.js`), or a custom directory to search PostCSS config from (default is project root). The search is done using [postcss-load-config](https://github.com/postcss/postcss-load-config) and only the supported config file names are loaded.
+ Inline PostCSS config or a custom directory to search PostCSS config from (default is project root).
+
+ For inline PostCSS config, it expects the same format as `postcss.config.js`. But for `plugins` property, only [array format](https://github.com/postcss/postcss-load-config/blob/main/README.md#array) can be used.
+
+ The search is done using [postcss-load-config](https://github.com/postcss/postcss-load-config) and only the supported config file names are loaded.
Note if an inline config is provided, Vite will not search for other PostCSS config sources.
@@ -700,7 +726,7 @@ Defines the origin of the generated asset URLs during development.
```js
export default defineConfig({
server: {
- origin: 'http://127.0.0.1:8080/'
+ origin: 'http://127.0.0.1:8080'
}
})
```
@@ -1012,7 +1038,6 @@ export default defineConfig({
- `external` is also omitted, use Vite's `optimizeDeps.exclude` option
- `plugins` are merged with Vite's dep plugin
- - `keepNames` takes precedence over the deprecated `optimizeDeps.keepNames`
## SSR Options
diff --git a/docs/guide/api-hmr.md b/docs/guide/api-hmr.md
index 46eabab04e8868..1cba492e6613c1 100644
--- a/docs/guide/api-hmr.md
+++ b/docs/guide/api-hmr.md
@@ -10,21 +10,27 @@ Vite exposes its manual HMR API via the special `import.meta.hot` object:
```ts
interface ImportMeta {
- readonly hot?: {
- readonly data: any
+ readonly hot?: ViteHotContext
+}
+
+interface ViteHotContext {
+ readonly data: any
- accept(): void
- accept(cb: (mod: any) => void): void
- accept(dep: string, cb: (mod: any) => void): void
- accept(deps: string[], cb: (mods: any[]) => void): void
+ accept(): void
+ accept(cb: (mod: any) => void): void
+ accept(dep: string, cb: (mod: any) => void): void
+ accept(deps: readonly string[], cb: (mods: any[]) => void): void
- prune(cb: () => void): void
- dispose(cb: (data: any) => void): void
- decline(): void
- invalidate(): void
+ dispose(cb: (data: any) => void): void
+ decline(): void
+ invalidate(): void
- on(event: string, cb: (...args: any[]) => void): void
- }
+ // `InferCustomEventPayload` provides types for built-in Vite events
+ onThis should be green
+This should not be yellow
+ +This should be yellow
+ + + + diff --git a/playground/css-codesplit/inline.css b/playground/css-codesplit/inline.css new file mode 100644 index 00000000000000..b2a2b5f1ead51f --- /dev/null +++ b/playground/css-codesplit/inline.css @@ -0,0 +1,3 @@ +.inline { + color: yellow; +} diff --git a/packages/playground/css-codesplit/main.css b/playground/css-codesplit/main.css similarity index 100% rename from packages/playground/css-codesplit/main.css rename to playground/css-codesplit/main.css diff --git a/playground/css-codesplit/main.js b/playground/css-codesplit/main.js new file mode 100644 index 00000000000000..eb6e703f79e718 --- /dev/null +++ b/playground/css-codesplit/main.js @@ -0,0 +1,15 @@ +import './style.css' +import './main.css' + +import('./async.css') + +import('./inline.css?inline').then((css) => { + document.querySelector('.dynamic-inline').textContent = css.default +}) + +import('./mod.module.css').then((css) => { + document.querySelector('.dynamic-module').textContent = JSON.stringify( + css.default + ) + document.querySelector('.mod').classList.add(css.default.mod) +}) diff --git a/playground/css-codesplit/mod.module.css b/playground/css-codesplit/mod.module.css new file mode 100644 index 00000000000000..7f84410485a32c --- /dev/null +++ b/playground/css-codesplit/mod.module.css @@ -0,0 +1,3 @@ +.mod { + color: yellow; +} diff --git a/packages/playground/css-codesplit/other.js b/playground/css-codesplit/other.js similarity index 100% rename from packages/playground/css-codesplit/other.js rename to playground/css-codesplit/other.js diff --git a/packages/playground/css-codesplit/package.json b/playground/css-codesplit/package.json similarity index 72% rename from packages/playground/css-codesplit/package.json rename to playground/css-codesplit/package.json index a4403ab0e47a2a..b6fe27f6d35759 100644 --- a/packages/playground/css-codesplit/package.json +++ b/playground/css-codesplit/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" } } diff --git a/packages/playground/css-codesplit/style.css b/playground/css-codesplit/style.css similarity index 100% rename from packages/playground/css-codesplit/style.css rename to playground/css-codesplit/style.css diff --git a/packages/playground/css-codesplit/vite.config.js b/playground/css-codesplit/vite.config.js similarity index 100% rename from packages/playground/css-codesplit/vite.config.js rename to playground/css-codesplit/vite.config.js diff --git a/packages/playground/css-sourcemap/__tests__/build.spec.ts b/playground/css-sourcemap/__tests__/build.spec.ts similarity index 100% rename from packages/playground/css-sourcemap/__tests__/build.spec.ts rename to playground/css-sourcemap/__tests__/build.spec.ts diff --git a/packages/playground/css-sourcemap/__tests__/serve.spec.ts b/playground/css-sourcemap/__tests__/serve.spec.ts similarity index 72% rename from packages/playground/css-sourcemap/__tests__/serve.spec.ts rename to playground/css-sourcemap/__tests__/serve.spec.ts index 11e33a78af8424..becd792e82293a 100644 --- a/packages/playground/css-sourcemap/__tests__/serve.spec.ts +++ b/playground/css-sourcemap/__tests__/serve.spec.ts @@ -17,68 +17,6 @@ if (!isBuild) { throw new Error('Not found') } - test('inline css', async () => { - const css = await getStyleTagContentIncluding('.inline ') - const map = extractSourcemap(css) - expect(formatSourcemapForSnapshot(map)).toMatchInlineSnapshot(` - Object { - "mappings": "AAGO;AACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACf,CAAC,CAAC,CAAC;", - "sources": Array [ - "/root/index.html", - ], - "sourcesContent": Array [ - " - - - - -<inline>
- -<linked>: no import
-<linked>: with import
- -<imported>: no import
-<imported>: with import
- -<imported sass>
-<imported sass> with module
- -<imported less> with string additionalData
- -<imported stylus>
-Imported Less string:
+Stylus: This should be blue
Stylus additionalData: This should be orange @@ -89,6 +93,12 @@
Inline CSS module:
+ + +CSS with @charset:
+ +@import dependency w/ style enrtrypoints: this should be purple
@@ -125,6 +135,9 @@Raw Support
+ +PostCSS source.input.from. Should include query
+process as property:
spread object:
spread array:
dollar identifier:
unicode identifier:
no property:
no identifier substring:
define variable in html: __EXP__
import json:
dynamic-import-with-vars
+dynamic-import-with-vars-alias
+dynamic-import-with-vars-raw
+inline a
diff --git a/packages/playground/html/inline/unique.html b/playground/html/inline/unique.html similarity index 100% rename from packages/playground/html/inline/unique.html rename to playground/html/inline/unique.html diff --git a/packages/playground/html/inline/unique.js b/playground/html/inline/unique.js similarity index 100% rename from packages/playground/html/inline/unique.js rename to playground/html/inline/unique.js diff --git a/packages/playground/html/invalid.html b/playground/html/invalid.html similarity index 100% rename from packages/playground/html/invalid.html rename to playground/html/invalid.html diff --git a/packages/playground/html/link.html b/playground/html/link.html similarity index 100% rename from packages/playground/html/link.html rename to playground/html/link.html diff --git a/packages/playground/html/main.css b/playground/html/main.css similarity index 100% rename from packages/playground/html/main.css rename to playground/html/main.css diff --git a/packages/playground/html/main.js b/playground/html/main.js similarity index 100% rename from packages/playground/html/main.js rename to playground/html/main.js diff --git a/packages/playground/html/nested/index.html b/playground/html/nested/index.html similarity index 100% rename from packages/playground/html/nested/index.html rename to playground/html/nested/index.html diff --git a/packages/playground/html/nested/nested.css b/playground/html/nested/nested.css similarity index 100% rename from packages/playground/html/nested/nested.css rename to playground/html/nested/nested.css diff --git a/packages/playground/html/nested/nested.js b/playground/html/nested/nested.js similarity index 100% rename from packages/playground/html/nested/nested.js rename to playground/html/nested/nested.js diff --git a/packages/playground/html/noBody.html b/playground/html/noBody.html similarity index 100% rename from packages/playground/html/noBody.html rename to playground/html/noBody.html diff --git a/packages/playground/html/noHead.html b/playground/html/noHead.html similarity index 100% rename from packages/playground/html/noHead.html rename to playground/html/noHead.html diff --git a/packages/playground/html/package.json b/playground/html/package.json similarity index 71% rename from packages/playground/html/package.json rename to playground/html/package.json index a101033f8d3470..6db0bd91981ce0 100644 --- a/packages/playground/html/package.json +++ b/playground/html/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" } } diff --git a/packages/playground/html/scriptAsync.html b/playground/html/scriptAsync.html similarity index 100% rename from packages/playground/html/scriptAsync.html rename to playground/html/scriptAsync.html diff --git a/packages/playground/html/scriptMixed.html b/playground/html/scriptMixed.html similarity index 100% rename from packages/playground/html/scriptMixed.html rename to playground/html/scriptMixed.html diff --git a/packages/playground/html/shared.js b/playground/html/shared.js similarity index 100% rename from packages/playground/html/shared.js rename to playground/html/shared.js diff --git "a/packages/playground/html/unicode-path/\344\270\255\346\226\207-\343\201\253\343\201\273\343\202\223\343\201\224-\355\225\234\352\270\200-\360\237\214\225\360\237\214\226\360\237\214\227/index.html" "b/playground/html/unicode-path/\344\270\255\346\226\207-\343\201\253\343\201\273\343\202\223\343\201\224-\355\225\234\352\270\200-\360\237\214\225\360\237\214\226\360\237\214\227/index.html" similarity index 100% rename from "packages/playground/html/unicode-path/\344\270\255\346\226\207-\343\201\253\343\201\273\343\202\223\343\201\224-\355\225\234\352\270\200-\360\237\214\225\360\237\214\226\360\237\214\227/index.html" rename to "playground/html/unicode-path/\344\270\255\346\226\207-\343\201\253\343\201\273\343\202\223\343\201\224-\355\225\234\352\270\200-\360\237\214\225\360\237\214\226\360\237\214\227/index.html" diff --git a/packages/playground/html/vite.config.js b/playground/html/vite.config.js similarity index 98% rename from packages/playground/html/vite.config.js rename to playground/html/vite.config.js index 1703e02cc05366..bfe48675cbc18f 100644 --- a/packages/playground/html/vite.config.js +++ b/playground/html/vite.config.js @@ -17,6 +17,7 @@ module.exports = { zeroJS: resolve(__dirname, 'zeroJS.html'), noHead: resolve(__dirname, 'noHead.html'), noBody: resolve(__dirname, 'noBody.html'), + inlinea: resolve(__dirname, 'inline/shared_a.html'), inline1: resolve(__dirname, 'inline/shared-1.html'), inline2: resolve(__dirname, 'inline/shared-2.html'), inline3: resolve(__dirname, 'inline/unique.html'), diff --git a/packages/playground/html/zeroJS.html b/playground/html/zeroJS.html similarity index 100% rename from packages/playground/html/zeroJS.html rename to playground/html/zeroJS.html diff --git a/packages/playground/js-sourcemap/__tests__/build.spec.ts b/playground/js-sourcemap/__tests__/build.spec.ts similarity index 100% rename from packages/playground/js-sourcemap/__tests__/build.spec.ts rename to playground/js-sourcemap/__tests__/build.spec.ts diff --git a/packages/playground/js-sourcemap/__tests__/serve.spec.ts b/playground/js-sourcemap/__tests__/serve.spec.ts similarity index 100% rename from packages/playground/js-sourcemap/__tests__/serve.spec.ts rename to playground/js-sourcemap/__tests__/serve.spec.ts diff --git a/packages/playground/js-sourcemap/bar.ts b/playground/js-sourcemap/bar.ts similarity index 100% rename from packages/playground/js-sourcemap/bar.ts rename to playground/js-sourcemap/bar.ts diff --git a/packages/playground/js-sourcemap/foo.js b/playground/js-sourcemap/foo.js similarity index 100% rename from packages/playground/js-sourcemap/foo.js rename to playground/js-sourcemap/foo.js diff --git a/packages/playground/js-sourcemap/index.html b/playground/js-sourcemap/index.html similarity index 100% rename from packages/playground/js-sourcemap/index.html rename to playground/js-sourcemap/index.html diff --git a/packages/playground/js-sourcemap/package.json b/playground/js-sourcemap/package.json similarity index 72% rename from packages/playground/js-sourcemap/package.json rename to playground/js-sourcemap/package.json index e5a97aea80830f..92b166d2f302c2 100644 --- a/packages/playground/js-sourcemap/package.json +++ b/playground/js-sourcemap/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" } } diff --git a/packages/playground/js-sourcemap/vite.config.js b/playground/js-sourcemap/vite.config.js similarity index 100% rename from packages/playground/js-sourcemap/vite.config.js rename to playground/js-sourcemap/vite.config.js diff --git a/packages/playground/json/__tests__/json.spec.ts b/playground/json/__tests__/json.spec.ts similarity index 100% rename from packages/playground/json/__tests__/json.spec.ts rename to playground/json/__tests__/json.spec.ts diff --git a/packages/playground/json/index.html b/playground/json/index.html similarity index 100% rename from packages/playground/json/index.html rename to playground/json/index.html diff --git a/packages/playground/json/json-module/index.json b/playground/json/json-module/index.json similarity index 100% rename from packages/playground/json/json-module/index.json rename to playground/json/json-module/index.json diff --git a/packages/playground/json/json-module/package.json b/playground/json/json-module/package.json similarity index 100% rename from packages/playground/json/json-module/package.json rename to playground/json/json-module/package.json diff --git a/packages/playground/json/package.json b/playground/json/package.json similarity index 75% rename from packages/playground/json/package.json rename to playground/json/package.json index c9b0d20a039d95..b919c42eb6ef5d 100644 --- a/packages/playground/json/package.json +++ b/playground/json/package.json @@ -5,16 +5,16 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview", "dev:ssr": "node server", "serve:ssr": "cross-env NODE_ENV=production node server", "debug:ssr": "node --inspect-brk server" }, "devDependencies": { - "vue": "^3.2.25", "cross-env": "^7.0.3", "express": "^4.17.1", - "json-module": "file:./json-module" + "json-module": "file:./json-module", + "vue": "^3.2.33" } } diff --git a/packages/playground/json/public/public.json b/playground/json/public/public.json similarity index 100% rename from packages/playground/json/public/public.json rename to playground/json/public/public.json diff --git a/packages/playground/json/test.json b/playground/json/test.json similarity index 100% rename from packages/playground/json/test.json rename to playground/json/test.json diff --git a/packages/playground/legacy/__tests__/legacy.spec.ts b/playground/legacy/__tests__/legacy.spec.ts similarity index 85% rename from packages/playground/legacy/__tests__/legacy.spec.ts rename to playground/legacy/__tests__/legacy.spec.ts index 65bd39ff32b1d1..9fd3419337568d 100644 --- a/packages/playground/legacy/__tests__/legacy.spec.ts +++ b/playground/legacy/__tests__/legacy.spec.ts @@ -56,12 +56,23 @@ test('correctly emits styles', async () => { expect(await getColor('#app')).toBe('red') }) +// dynamic import css +test('should load dynamic import with css', async () => { + await page.click('#dynamic-css-button') + await untilUpdated( + () => + page.$eval('#dynamic-css', (node) => window.getComputedStyle(node).color), + 'rgb(255, 0, 0)', + true + ) +}) + if (isBuild) { test('should generate correct manifest', async () => { const manifest = readManifest() - expect(manifest['../../../vite/legacy-polyfills']).toBeDefined() - expect(manifest['../../../vite/legacy-polyfills'].src).toBe( - '../../../vite/legacy-polyfills' + expect(manifest['../../vite/legacy-polyfills']).toBeDefined() + expect(manifest['../../vite/legacy-polyfills'].src).toBe( + '../../vite/legacy-polyfills' ) }) diff --git a/packages/playground/legacy/__tests__/ssr/legacy-ssr.spec.ts b/playground/legacy/__tests__/ssr/legacy-ssr.spec.ts similarity index 100% rename from packages/playground/legacy/__tests__/ssr/legacy-ssr.spec.ts rename to playground/legacy/__tests__/ssr/legacy-ssr.spec.ts diff --git a/packages/playground/legacy/__tests__/ssr/serve.js b/playground/legacy/__tests__/ssr/serve.js similarity index 92% rename from packages/playground/legacy/__tests__/ssr/serve.js rename to playground/legacy/__tests__/ssr/serve.js index df43f180afb188..c7ef2ed3520e53 100644 --- a/packages/playground/legacy/__tests__/ssr/serve.js +++ b/playground/legacy/__tests__/ssr/serve.js @@ -2,8 +2,9 @@ // this is automtically detected by scripts/jestPerTestSetup.ts and will replace // the default e2e test serve behavior const path = require('path') +const { ports } = require('../../../testUtils') -const port = (exports.port = 9527) +const port = (exports.port = ports['legacy/ssr']) /** * @param {string} root diff --git a/packages/playground/legacy/async.js b/playground/legacy/async.js similarity index 100% rename from packages/playground/legacy/async.js rename to playground/legacy/async.js diff --git a/playground/legacy/dynamic.css b/playground/legacy/dynamic.css new file mode 100644 index 00000000000000..160ee45a8a850a --- /dev/null +++ b/playground/legacy/dynamic.css @@ -0,0 +1,3 @@ +#dynamic-css { + color: red; +} diff --git a/packages/playground/legacy/entry-server.js b/playground/legacy/entry-server.js similarity index 100% rename from packages/playground/legacy/entry-server.js rename to playground/legacy/entry-server.js diff --git a/packages/playground/legacy/immutable-chunk.js b/playground/legacy/immutable-chunk.js similarity index 100% rename from packages/playground/legacy/immutable-chunk.js rename to playground/legacy/immutable-chunk.js diff --git a/packages/playground/legacy/index.html b/playground/legacy/index.html similarity index 72% rename from packages/playground/legacy/index.html rename to playground/legacy/index.html index d481766463cd4f..cbf6242fad756b 100644 --- a/packages/playground/legacy/index.html +++ b/playground/legacy/index.html @@ -4,4 +4,6 @@ + + diff --git a/packages/playground/legacy/main.js b/playground/legacy/main.js similarity index 84% rename from packages/playground/legacy/main.js rename to playground/legacy/main.js index 31579b4717810d..157b6c8448e9c3 100644 --- a/packages/playground/legacy/main.js +++ b/playground/legacy/main.js @@ -42,6 +42,14 @@ import('./immutable-chunk.js') text('#assets', assets.join('\n')) }) +// dynamic css +document + .querySelector('#dynamic-css-button') + .addEventListener('click', async () => { + await import('./dynamic.css') + text('#dynamic-css', 'dynamic import css') + }) + function text(el, text) { document.querySelector(el).textContent = text } diff --git a/packages/playground/legacy/package.json b/playground/legacy/package.json similarity index 65% rename from packages/playground/legacy/package.json rename to playground/legacy/package.json index 3a3315c42aa832..4f11c234573f40 100644 --- a/packages/playground/legacy/package.json +++ b/playground/legacy/package.json @@ -6,11 +6,12 @@ "dev": "vite", "build": "vite build --debug legacy", "build:custom-filename": "vite --config ./vite.config-custom-filename.js build --debug legacy", - "debug": "node --inspect-brk ../../vite/bin/vite", + "build:dynamic-css": "vite --config ./vite.config-dynamic-css.js build --debug legacy", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" }, "devDependencies": { "@vitejs/plugin-legacy": "workspace:*", - "express": "^4.17.1" + "express": "^4.18.1" } } diff --git a/packages/playground/legacy/style.css b/playground/legacy/style.css similarity index 100% rename from packages/playground/legacy/style.css rename to playground/legacy/style.css diff --git a/packages/playground/legacy/vite.config-custom-filename.js b/playground/legacy/vite.config-custom-filename.js similarity index 100% rename from packages/playground/legacy/vite.config-custom-filename.js rename to playground/legacy/vite.config-custom-filename.js diff --git a/playground/legacy/vite.config-dynamic-css.js b/playground/legacy/vite.config-dynamic-css.js new file mode 100644 index 00000000000000..10565768ac4d49 --- /dev/null +++ b/playground/legacy/vite.config-dynamic-css.js @@ -0,0 +1,39 @@ +const fs = require('fs') +const path = require('path') +const legacy = require('@vitejs/plugin-legacy').default + +module.exports = { + plugins: [ + legacy({ + targets: 'IE 11' + }) + ], + + build: { + cssCodeSplit: true, + manifest: true, + rollupOptions: { + output: { + chunkFileNames(chunkInfo) { + if (chunkInfo.name === 'immutable-chunk') { + return `assets/${chunkInfo.name}.js` + } + + return `assets/chunk-[name].[hash].js` + } + } + } + }, + + // special test only hook + // for tests, remove ` diff --git a/packages/playground/lib/index.html b/playground/lib/index.html similarity index 100% rename from packages/playground/lib/index.html rename to playground/lib/index.html diff --git a/packages/playground/lib/package.json b/playground/lib/package.json similarity index 72% rename from packages/playground/lib/package.json rename to playground/lib/package.json index 2c3ae4be3d4bcb..66b827b7c84179 100644 --- a/packages/playground/lib/package.json +++ b/playground/lib/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" } } diff --git a/playground/lib/src/dynamic.css b/playground/lib/src/dynamic.css new file mode 100644 index 00000000000000..4378c8d328cfbe --- /dev/null +++ b/playground/lib/src/dynamic.css @@ -0,0 +1,4 @@ +@import 'https://cdn.jsdelivr.net/npm/@mdi/font@5.9.55/css/materialdesignicons.min.css'; +.dynamic { + color: red; +} diff --git a/playground/lib/src/index.css b/playground/lib/src/index.css new file mode 100644 index 00000000000000..b0bd670bd9ecad --- /dev/null +++ b/playground/lib/src/index.css @@ -0,0 +1,3 @@ +.index { + color: blue; +} diff --git a/playground/lib/src/main.js b/playground/lib/src/main.js new file mode 100644 index 00000000000000..cb2fb3b842dc4f --- /dev/null +++ b/playground/lib/src/main.js @@ -0,0 +1,6 @@ +export default function myLib(sel) { + // Force esbuild spread helpers (https://github.com/evanw/esbuild/issues/951) + console.log({ ...'foo' }) + + document.querySelector(sel).textContent = 'It works' +} diff --git a/packages/playground/lib/src/main2.js b/playground/lib/src/main2.js similarity index 73% rename from packages/playground/lib/src/main2.js rename to playground/lib/src/main2.js index 0c729fad8d165c..f19a16bb128949 100644 --- a/packages/playground/lib/src/main2.js +++ b/playground/lib/src/main2.js @@ -1,4 +1,9 @@ +import './index.css' + export default async function message(sel) { const message = await import('./message.js') + + await import('./dynamic.css') + document.querySelector(sel).textContent = message.default } diff --git a/packages/playground/lib/src/message.js b/playground/lib/src/message.js similarity index 100% rename from packages/playground/lib/src/message.js rename to playground/lib/src/message.js diff --git a/packages/playground/lib/vite.config.js b/playground/lib/vite.config.js similarity index 89% rename from packages/playground/lib/vite.config.js rename to playground/lib/vite.config.js index 50cd188b1a40cc..72c040d38d6dcf 100644 --- a/packages/playground/lib/vite.config.js +++ b/playground/lib/vite.config.js @@ -10,7 +10,7 @@ module.exports = { entry: path.resolve(__dirname, 'src/main.js'), name: 'MyLib', formats: ['es', 'umd', 'iife'], - fileName: (format) => `my-lib-custom-filename.${format}.js` + fileName: 'my-lib-custom-filename' } }, plugins: [ diff --git a/packages/playground/lib/vite.dyimport.config.js b/playground/lib/vite.dyimport.config.js similarity index 94% rename from packages/playground/lib/vite.dyimport.config.js rename to playground/lib/vite.dyimport.config.js index 76311f4b8ba138..d738503f0c9d09 100644 --- a/packages/playground/lib/vite.dyimport.config.js +++ b/playground/lib/vite.dyimport.config.js @@ -6,7 +6,6 @@ const path = require('path') */ module.exports = { build: { - minify: false, lib: { entry: path.resolve(__dirname, 'src/main2.js'), formats: ['es'], diff --git a/packages/playground/multiple-entrypoints/__tests__/multiple-entrypoints.spec.ts b/playground/multiple-entrypoints/__tests__/multiple-entrypoints.spec.ts similarity index 100% rename from packages/playground/multiple-entrypoints/__tests__/multiple-entrypoints.spec.ts rename to playground/multiple-entrypoints/__tests__/multiple-entrypoints.spec.ts diff --git a/packages/playground/multiple-entrypoints/deps.json b/playground/multiple-entrypoints/deps.json similarity index 100% rename from packages/playground/multiple-entrypoints/deps.json rename to playground/multiple-entrypoints/deps.json diff --git a/packages/playground/multiple-entrypoints/dynamic-a.js b/playground/multiple-entrypoints/dynamic-a.js similarity index 100% rename from packages/playground/multiple-entrypoints/dynamic-a.js rename to playground/multiple-entrypoints/dynamic-a.js diff --git a/packages/playground/multiple-entrypoints/dynamic-b.js b/playground/multiple-entrypoints/dynamic-b.js similarity index 100% rename from packages/playground/multiple-entrypoints/dynamic-b.js rename to playground/multiple-entrypoints/dynamic-b.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a0.js b/playground/multiple-entrypoints/entrypoints/a0.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a0.js rename to playground/multiple-entrypoints/entrypoints/a0.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a1.js b/playground/multiple-entrypoints/entrypoints/a1.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a1.js rename to playground/multiple-entrypoints/entrypoints/a1.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a10.js b/playground/multiple-entrypoints/entrypoints/a10.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a10.js rename to playground/multiple-entrypoints/entrypoints/a10.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a11.js b/playground/multiple-entrypoints/entrypoints/a11.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a11.js rename to playground/multiple-entrypoints/entrypoints/a11.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a12.js b/playground/multiple-entrypoints/entrypoints/a12.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a12.js rename to playground/multiple-entrypoints/entrypoints/a12.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a13.js b/playground/multiple-entrypoints/entrypoints/a13.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a13.js rename to playground/multiple-entrypoints/entrypoints/a13.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a14.js b/playground/multiple-entrypoints/entrypoints/a14.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a14.js rename to playground/multiple-entrypoints/entrypoints/a14.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a15.js b/playground/multiple-entrypoints/entrypoints/a15.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a15.js rename to playground/multiple-entrypoints/entrypoints/a15.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a16.js b/playground/multiple-entrypoints/entrypoints/a16.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a16.js rename to playground/multiple-entrypoints/entrypoints/a16.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a17.js b/playground/multiple-entrypoints/entrypoints/a17.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a17.js rename to playground/multiple-entrypoints/entrypoints/a17.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a18.js b/playground/multiple-entrypoints/entrypoints/a18.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a18.js rename to playground/multiple-entrypoints/entrypoints/a18.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a19.js b/playground/multiple-entrypoints/entrypoints/a19.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a19.js rename to playground/multiple-entrypoints/entrypoints/a19.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a2.js b/playground/multiple-entrypoints/entrypoints/a2.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a2.js rename to playground/multiple-entrypoints/entrypoints/a2.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a20.js b/playground/multiple-entrypoints/entrypoints/a20.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a20.js rename to playground/multiple-entrypoints/entrypoints/a20.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a21.js b/playground/multiple-entrypoints/entrypoints/a21.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a21.js rename to playground/multiple-entrypoints/entrypoints/a21.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a22.js b/playground/multiple-entrypoints/entrypoints/a22.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a22.js rename to playground/multiple-entrypoints/entrypoints/a22.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a23.js b/playground/multiple-entrypoints/entrypoints/a23.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a23.js rename to playground/multiple-entrypoints/entrypoints/a23.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a24.js b/playground/multiple-entrypoints/entrypoints/a24.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a24.js rename to playground/multiple-entrypoints/entrypoints/a24.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a3.js b/playground/multiple-entrypoints/entrypoints/a3.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a3.js rename to playground/multiple-entrypoints/entrypoints/a3.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a4.js b/playground/multiple-entrypoints/entrypoints/a4.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a4.js rename to playground/multiple-entrypoints/entrypoints/a4.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a5.js b/playground/multiple-entrypoints/entrypoints/a5.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a5.js rename to playground/multiple-entrypoints/entrypoints/a5.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a6.js b/playground/multiple-entrypoints/entrypoints/a6.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a6.js rename to playground/multiple-entrypoints/entrypoints/a6.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a7.js b/playground/multiple-entrypoints/entrypoints/a7.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a7.js rename to playground/multiple-entrypoints/entrypoints/a7.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a8.js b/playground/multiple-entrypoints/entrypoints/a8.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a8.js rename to playground/multiple-entrypoints/entrypoints/a8.js diff --git a/packages/playground/multiple-entrypoints/entrypoints/a9.js b/playground/multiple-entrypoints/entrypoints/a9.js similarity index 100% rename from packages/playground/multiple-entrypoints/entrypoints/a9.js rename to playground/multiple-entrypoints/entrypoints/a9.js diff --git a/packages/playground/multiple-entrypoints/index.html b/playground/multiple-entrypoints/index.html similarity index 100% rename from packages/playground/multiple-entrypoints/index.html rename to playground/multiple-entrypoints/index.html diff --git a/packages/playground/multiple-entrypoints/index.js b/playground/multiple-entrypoints/index.js similarity index 100% rename from packages/playground/multiple-entrypoints/index.js rename to playground/multiple-entrypoints/index.js diff --git a/packages/playground/multiple-entrypoints/package.json b/playground/multiple-entrypoints/package.json similarity index 72% rename from packages/playground/multiple-entrypoints/package.json rename to playground/multiple-entrypoints/package.json index 6c338a64518ddb..07818337be7bba 100644 --- a/packages/playground/multiple-entrypoints/package.json +++ b/playground/multiple-entrypoints/package.json @@ -5,11 +5,11 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" }, "devDependencies": { "fast-glob": "^3.2.11", - "sass": "^1.43.4" + "sass": "^1.51.0" } } diff --git a/packages/playground/multiple-entrypoints/reference.js b/playground/multiple-entrypoints/reference.js similarity index 100% rename from packages/playground/multiple-entrypoints/reference.js rename to playground/multiple-entrypoints/reference.js diff --git a/packages/playground/multiple-entrypoints/reference.scss b/playground/multiple-entrypoints/reference.scss similarity index 100% rename from packages/playground/multiple-entrypoints/reference.scss rename to playground/multiple-entrypoints/reference.scss diff --git a/packages/playground/multiple-entrypoints/vite.config.js b/playground/multiple-entrypoints/vite.config.js similarity index 100% rename from packages/playground/multiple-entrypoints/vite.config.js rename to playground/multiple-entrypoints/vite.config.js diff --git a/packages/playground/nested-deps/__tests__/nested-deps.spec.ts b/playground/nested-deps/__tests__/nested-deps.spec.ts similarity index 100% rename from packages/playground/nested-deps/__tests__/nested-deps.spec.ts rename to playground/nested-deps/__tests__/nested-deps.spec.ts diff --git a/packages/playground/nested-deps/index.html b/playground/nested-deps/index.html similarity index 100% rename from packages/playground/nested-deps/index.html rename to playground/nested-deps/index.html diff --git a/packages/playground/nested-deps/package.json b/playground/nested-deps/package.json similarity index 87% rename from packages/playground/nested-deps/package.json rename to playground/nested-deps/package.json index d7450d0545fcb4..cbfcfe44df551b 100644 --- a/packages/playground/nested-deps/package.json +++ b/playground/nested-deps/package.json @@ -5,7 +5,7 @@ "scripts": { "dev": "vite", "build": "vite build", - "debug": "node --inspect-brk ../../vite/bin/vite", + "debug": "node --inspect-brk ../../packages/vite/bin/vite", "preview": "vite preview" }, "dependencies": { diff --git a/packages/playground/nested-deps/test-package-a/index.js b/playground/nested-deps/test-package-a/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-a/index.js rename to playground/nested-deps/test-package-a/index.js diff --git a/packages/playground/nested-deps/test-package-a/package.json b/playground/nested-deps/test-package-a/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-a/package.json rename to playground/nested-deps/test-package-a/package.json diff --git a/packages/playground/nested-deps/test-package-b/index.js b/playground/nested-deps/test-package-b/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-b/index.js rename to playground/nested-deps/test-package-b/index.js diff --git a/packages/playground/nested-deps/test-package-b/node_modules/test-package-a/index.js b/playground/nested-deps/test-package-b/node_modules/test-package-a/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-b/node_modules/test-package-a/index.js rename to playground/nested-deps/test-package-b/node_modules/test-package-a/index.js diff --git a/packages/playground/nested-deps/test-package-b/node_modules/test-package-a/package.json b/playground/nested-deps/test-package-b/node_modules/test-package-a/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-b/node_modules/test-package-a/package.json rename to playground/nested-deps/test-package-b/node_modules/test-package-a/package.json diff --git a/packages/playground/nested-deps/test-package-b/package.json b/playground/nested-deps/test-package-b/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-b/package.json rename to playground/nested-deps/test-package-b/package.json diff --git a/packages/playground/nested-deps/test-package-c/index-es.js b/playground/nested-deps/test-package-c/index-es.js similarity index 100% rename from packages/playground/nested-deps/test-package-c/index-es.js rename to playground/nested-deps/test-package-c/index-es.js diff --git a/packages/playground/nested-deps/test-package-c/index.js b/playground/nested-deps/test-package-c/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-c/index.js rename to playground/nested-deps/test-package-c/index.js diff --git a/packages/playground/nested-deps/test-package-c/package.json b/playground/nested-deps/test-package-c/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-c/package.json rename to playground/nested-deps/test-package-c/package.json diff --git a/packages/playground/nested-deps/test-package-c/side.js b/playground/nested-deps/test-package-c/side.js similarity index 100% rename from packages/playground/nested-deps/test-package-c/side.js rename to playground/nested-deps/test-package-c/side.js diff --git a/packages/playground/nested-deps/test-package-d/index.js b/playground/nested-deps/test-package-d/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-d/index.js rename to playground/nested-deps/test-package-d/index.js diff --git a/packages/playground/nested-deps/test-package-d/package.json b/playground/nested-deps/test-package-d/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-d/package.json rename to playground/nested-deps/test-package-d/package.json diff --git a/packages/playground/nested-deps/test-package-d/test-package-d-nested/index.js b/playground/nested-deps/test-package-d/test-package-d-nested/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-d/test-package-d-nested/index.js rename to playground/nested-deps/test-package-d/test-package-d-nested/index.js diff --git a/packages/playground/nested-deps/test-package-d/test-package-d-nested/package.json b/playground/nested-deps/test-package-d/test-package-d-nested/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-d/test-package-d-nested/package.json rename to playground/nested-deps/test-package-d/test-package-d-nested/package.json diff --git a/packages/playground/nested-deps/test-package-e/index.js b/playground/nested-deps/test-package-e/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-e/index.js rename to playground/nested-deps/test-package-e/index.js diff --git a/packages/playground/nested-deps/test-package-e/package.json b/playground/nested-deps/test-package-e/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-e/package.json rename to playground/nested-deps/test-package-e/package.json diff --git a/packages/playground/nested-deps/test-package-e/test-package-e-excluded/index.js b/playground/nested-deps/test-package-e/test-package-e-excluded/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-e/test-package-e-excluded/index.js rename to playground/nested-deps/test-package-e/test-package-e-excluded/index.js diff --git a/packages/playground/nested-deps/test-package-e/test-package-e-excluded/package.json b/playground/nested-deps/test-package-e/test-package-e-excluded/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-e/test-package-e-excluded/package.json rename to playground/nested-deps/test-package-e/test-package-e-excluded/package.json diff --git a/packages/playground/nested-deps/test-package-e/test-package-e-included/index.js b/playground/nested-deps/test-package-e/test-package-e-included/index.js similarity index 100% rename from packages/playground/nested-deps/test-package-e/test-package-e-included/index.js rename to playground/nested-deps/test-package-e/test-package-e-included/index.js diff --git a/packages/playground/nested-deps/test-package-e/test-package-e-included/package.json b/playground/nested-deps/test-package-e/test-package-e-included/package.json similarity index 100% rename from packages/playground/nested-deps/test-package-e/test-package-e-included/package.json rename to playground/nested-deps/test-package-e/test-package-e-included/package.json diff --git a/packages/playground/nested-deps/vite.config.js b/playground/nested-deps/vite.config.js similarity index 100% rename from packages/playground/nested-deps/vite.config.js rename to playground/nested-deps/vite.config.js diff --git a/playground/optimize-deps/.env b/playground/optimize-deps/.env new file mode 100644 index 00000000000000..995fca4af2ee24 --- /dev/null +++ b/playground/optimize-deps/.env @@ -0,0 +1 @@ +NODE_ENV=production \ No newline at end of file diff --git a/packages/playground/optimize-deps/.hidden-dir/foo.js b/playground/optimize-deps/.hidden-dir/foo.js similarity index 100% rename from packages/playground/optimize-deps/.hidden-dir/foo.js rename to playground/optimize-deps/.hidden-dir/foo.js diff --git a/packages/playground/optimize-deps/__tests__/optimize-deps.spec.ts b/playground/optimize-deps/__tests__/optimize-deps.spec.ts similarity index 96% rename from packages/playground/optimize-deps/__tests__/optimize-deps.spec.ts rename to playground/optimize-deps/__tests__/optimize-deps.spec.ts index d95a6d984cd9aa..e832408370969a 100644 --- a/packages/playground/optimize-deps/__tests__/optimize-deps.spec.ts +++ b/playground/optimize-deps/__tests__/optimize-deps.spec.ts @@ -62,6 +62,10 @@ test('import * from optimized dep', async () => { expect(await page.textContent('.import-star')).toMatch(`[success]`) }) +test('import from dep with process.env.NODE_ENV', async () => { + expect(await page.textContent('.node-env')).toMatch(`prod`) +}) + test('import from dep with .notjs files', async () => { expect(await page.textContent('.not-js')).toMatch(`[success]`) }) diff --git a/packages/playground/optimize-deps/cjs-dynamic.js b/playground/optimize-deps/cjs-dynamic.js similarity index 100% rename from packages/playground/optimize-deps/cjs-dynamic.js rename to playground/optimize-deps/cjs-dynamic.js diff --git a/packages/playground/optimize-deps/cjs.js b/playground/optimize-deps/cjs.js similarity index 100% rename from packages/playground/optimize-deps/cjs.js rename to playground/optimize-deps/cjs.js diff --git a/packages/playground/optimize-deps/dedupe.js b/playground/optimize-deps/dedupe.js similarity index 100% rename from packages/playground/optimize-deps/dedupe.js rename to playground/optimize-deps/dedupe.js diff --git a/packages/playground/optimize-deps/dep-cjs-compiled-from-cjs/index.js b/playground/optimize-deps/dep-cjs-compiled-from-cjs/index.js similarity index 100% rename from packages/playground/optimize-deps/dep-cjs-compiled-from-cjs/index.js rename to playground/optimize-deps/dep-cjs-compiled-from-cjs/index.js diff --git a/packages/playground/optimize-deps/dep-cjs-compiled-from-cjs/package.json b/playground/optimize-deps/dep-cjs-compiled-from-cjs/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-cjs-compiled-from-cjs/package.json rename to playground/optimize-deps/dep-cjs-compiled-from-cjs/package.json diff --git a/packages/playground/optimize-deps/dep-cjs-compiled-from-esm/index.js b/playground/optimize-deps/dep-cjs-compiled-from-esm/index.js similarity index 100% rename from packages/playground/optimize-deps/dep-cjs-compiled-from-esm/index.js rename to playground/optimize-deps/dep-cjs-compiled-from-esm/index.js diff --git a/packages/playground/optimize-deps/dep-cjs-compiled-from-esm/package.json b/playground/optimize-deps/dep-cjs-compiled-from-esm/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-cjs-compiled-from-esm/package.json rename to playground/optimize-deps/dep-cjs-compiled-from-esm/package.json diff --git a/packages/playground/optimize-deps/dep-esbuild-plugin-transform/index.js b/playground/optimize-deps/dep-esbuild-plugin-transform/index.js similarity index 100% rename from packages/playground/optimize-deps/dep-esbuild-plugin-transform/index.js rename to playground/optimize-deps/dep-esbuild-plugin-transform/index.js diff --git a/packages/playground/optimize-deps/dep-esbuild-plugin-transform/package.json b/playground/optimize-deps/dep-esbuild-plugin-transform/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-esbuild-plugin-transform/package.json rename to playground/optimize-deps/dep-esbuild-plugin-transform/package.json diff --git a/packages/playground/optimize-deps/dep-linked-include/Test.vue b/playground/optimize-deps/dep-linked-include/Test.vue similarity index 100% rename from packages/playground/optimize-deps/dep-linked-include/Test.vue rename to playground/optimize-deps/dep-linked-include/Test.vue diff --git a/packages/playground/optimize-deps/dep-linked-include/foo.js b/playground/optimize-deps/dep-linked-include/foo.js similarity index 100% rename from packages/playground/optimize-deps/dep-linked-include/foo.js rename to playground/optimize-deps/dep-linked-include/foo.js diff --git a/packages/playground/optimize-deps/dep-linked-include/index.mjs b/playground/optimize-deps/dep-linked-include/index.mjs similarity index 100% rename from packages/playground/optimize-deps/dep-linked-include/index.mjs rename to playground/optimize-deps/dep-linked-include/index.mjs diff --git a/packages/playground/optimize-deps/dep-linked-include/package.json b/playground/optimize-deps/dep-linked-include/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-linked-include/package.json rename to playground/optimize-deps/dep-linked-include/package.json diff --git a/packages/playground/optimize-deps/dep-linked-include/test.css b/playground/optimize-deps/dep-linked-include/test.css similarity index 100% rename from packages/playground/optimize-deps/dep-linked-include/test.css rename to playground/optimize-deps/dep-linked-include/test.css diff --git a/packages/playground/optimize-deps/dep-linked/index.js b/playground/optimize-deps/dep-linked/index.js similarity index 100% rename from packages/playground/optimize-deps/dep-linked/index.js rename to playground/optimize-deps/dep-linked/index.js diff --git a/packages/playground/optimize-deps/dep-linked/package.json b/playground/optimize-deps/dep-linked/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-linked/package.json rename to playground/optimize-deps/dep-linked/package.json diff --git a/playground/optimize-deps/dep-node-env/index.js b/playground/optimize-deps/dep-node-env/index.js new file mode 100644 index 00000000000000..8548c37894539f --- /dev/null +++ b/playground/optimize-deps/dep-node-env/index.js @@ -0,0 +1 @@ +export const env = process.env.NODE_ENV === 'production' ? 'prod' : 'dev' diff --git a/playground/optimize-deps/dep-node-env/package.json b/playground/optimize-deps/dep-node-env/package.json new file mode 100644 index 00000000000000..59a00fb153c522 --- /dev/null +++ b/playground/optimize-deps/dep-node-env/package.json @@ -0,0 +1,5 @@ +{ + "name": "dep-node-env", + "private": true, + "version": "1.0.0" +} diff --git a/packages/playground/optimize-deps/dep-not-js/foo.js b/playground/optimize-deps/dep-not-js/foo.js similarity index 100% rename from packages/playground/optimize-deps/dep-not-js/foo.js rename to playground/optimize-deps/dep-not-js/foo.js diff --git a/packages/playground/optimize-deps/dep-not-js/index.notjs b/playground/optimize-deps/dep-not-js/index.notjs similarity index 100% rename from packages/playground/optimize-deps/dep-not-js/index.notjs rename to playground/optimize-deps/dep-not-js/index.notjs diff --git a/packages/playground/optimize-deps/dep-not-js/package.json b/playground/optimize-deps/dep-not-js/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-not-js/package.json rename to playground/optimize-deps/dep-not-js/package.json diff --git a/packages/playground/optimize-deps/dep-with-dynamic-import/dynamic.js b/playground/optimize-deps/dep-with-dynamic-import/dynamic.js similarity index 100% rename from packages/playground/optimize-deps/dep-with-dynamic-import/dynamic.js rename to playground/optimize-deps/dep-with-dynamic-import/dynamic.js diff --git a/packages/playground/optimize-deps/dep-with-dynamic-import/index.js b/playground/optimize-deps/dep-with-dynamic-import/index.js similarity index 100% rename from packages/playground/optimize-deps/dep-with-dynamic-import/index.js rename to playground/optimize-deps/dep-with-dynamic-import/index.js diff --git a/packages/playground/optimize-deps/dep-with-dynamic-import/package.json b/playground/optimize-deps/dep-with-dynamic-import/package.json similarity index 100% rename from packages/playground/optimize-deps/dep-with-dynamic-import/package.json rename to playground/optimize-deps/dep-with-dynamic-import/package.json diff --git a/packages/playground/optimize-deps/glob/foo.js b/playground/optimize-deps/glob/foo.js similarity index 100% rename from packages/playground/optimize-deps/glob/foo.js rename to playground/optimize-deps/glob/foo.js diff --git a/packages/playground/optimize-deps/index.html b/playground/optimize-deps/index.html similarity index 94% rename from packages/playground/optimize-deps/index.html rename to playground/optimize-deps/index.html index 2be896d00acba9..d11383bfcb3e04 100644 --- a/packages/playground/optimize-deps/index.html +++ b/playground/optimize-deps/index.html @@ -38,6 +38,9 @@