Skip to content

Commit

Permalink
Merge branch 'vitejs:main' into fix-vitejs#3295
Browse files Browse the repository at this point in the history
  • Loading branch information
torsteinringnes authored Sep 23, 2021
2 parents d463bd9 + fe25567 commit 45e7d5e
Show file tree
Hide file tree
Showing 46 changed files with 671 additions and 614 deletions.
2 changes: 1 addition & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ module.exports = defineConfig({
parser: '@typescript-eslint/parser',
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
ecmaVersion: 'latest'
},
rules: {
eqeqeq: ['warn', 'always', { null: 'never' }],
Expand Down
34 changes: 9 additions & 25 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@
"ci-docs": "run-s build-vite build-plugin-vue build-docs"
},
"devDependencies": {
"@microsoft/api-extractor": "^7.18.9",
"@types/fs-extra": "^9.0.12",
"@types/jest": "^27.0.1",
"@microsoft/api-extractor": "^7.18.10",
"@types/fs-extra": "^9.0.13",
"@types/jest": "^27.0.2",
"@types/node": "^15.12.2",
"@types/semver": "^7.3.8",
"@typescript-eslint/eslint-plugin": "^4.31.1",
"@typescript-eslint/parser": "^4.31.1",
"@typescript-eslint/eslint-plugin": "^4.31.2",
"@typescript-eslint/parser": "^4.31.2",
"chalk": "^4.1.2",
"conventional-changelog-cli": "^2.1.1",
"cross-env": "^7.0.3",
Expand All @@ -42,12 +42,12 @@
"eslint-plugin-node": "^11.1.0",
"execa": "^5.1.1",
"fs-extra": "^10.0.0",
"jest": "^27.2.0",
"jest": "^27.2.1",
"lint-staged": "^11.1.2",
"minimist": "^1.2.5",
"node-fetch": "^2.6.2",
"node-fetch": "^2.6.5",
"npm-run-all": "^4.1.5",
"playwright-chromium": "^1.14.1",
"playwright-chromium": "^1.15.0",
"prettier": "2.4.1",
"prompts": "^2.4.1",
"rimraf": "^3.0.2",
Expand All @@ -56,25 +56,9 @@
"ts-jest": "^27.0.5",
"ts-node": "^10.1.0",
"typescript": "~4.3.5",
"vitepress": "^0.18.1",
"vitepress": "^0.19.1",
"yorkie": "^2.0.0"
},
"peerDependencies": {
"less": ">=4.0.0",
"sass": ">=1.0.0",
"stylus": ">=0.54.0"
},
"peerDependenciesMeta": {
"sass": {
"optional": true
},
"stylus": {
"optional": true
},
"less": {
"optional": true
}
},
"gitHooks": {
"pre-commit": "lint-staged --concurrent false",
"commit-msg": "node scripts/verifyCommit.js"
Expand Down
4 changes: 4 additions & 0 deletions packages/create-vite/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## [2.6.4](https://github.com/vitejs/vite/compare/[email protected]@2.6.4) (2021-09-22)



## [2.6.3](https://github.com/vitejs/vite/compare/[email protected]@2.6.3) (2021-09-21)


Expand Down
2 changes: 1 addition & 1 deletion packages/create-vite/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-vite",
"version": "2.6.3",
"version": "2.6.4",
"license": "MIT",
"author": "Evan You",
"bin": {
Expand Down
2 changes: 1 addition & 1 deletion packages/create-vite/template-react-ts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"devDependencies": {
"@types/react": "^17.0.0",
"@types/react-dom": "^17.0.0",
"@vitejs/plugin-react-refresh": "^1.3.1",
"@vitejs/plugin-react": "^1.0.0",
"typescript": "^4.3.2",
"vite": "^2.5.4"
}
Expand Down
2 changes: 1 addition & 1 deletion packages/create-vite/template-react-ts/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useState } from 'react'
import { useState } from 'react'
import logo from './logo.svg'
import './App.css'

Expand Down
2 changes: 1 addition & 1 deletion packages/create-vite/template-react-ts/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react"
"jsx": "react-jsx"
},
"include": ["./src"]
}
4 changes: 2 additions & 2 deletions packages/create-vite/template-react-ts/vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineConfig } from 'vite'
import reactRefresh from '@vitejs/plugin-react-refresh'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
plugins: [reactRefresh()]
plugins: [react()]
})
2 changes: 1 addition & 1 deletion packages/create-vite/template-react/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"react-dom": "^17.0.0"
},
"devDependencies": {
"@vitejs/plugin-react-refresh": "^1.3.1",
"@vitejs/plugin-react": "^1.0.0",
"vite": "^2.5.4"
}
}
2 changes: 1 addition & 1 deletion packages/create-vite/template-react/src/App.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useState } from 'react'
import { useState } from 'react'
import logo from './logo.svg'
import './App.css'

Expand Down
4 changes: 2 additions & 2 deletions packages/create-vite/template-react/vite.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { defineConfig } from 'vite'
import reactRefresh from '@vitejs/plugin-react-refresh'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
plugins: [reactRefresh()]
plugins: [react()]
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { port } from './serve'
import fetch from 'node-fetch'
import { untilUpdated } from '../../testUtils'

const url = `http://localhost:${port}`

test('*', async () => {
await page.goto(url)
// reload page to get optimized missing deps
await page.reload()
await untilUpdated(() => page.textContent('div'), 'Client')

// raw http request
const aboutHtml = await (await fetch(url)).text()
expect(aboutHtml).toMatch('Server')
})
36 changes: 36 additions & 0 deletions packages/playground/optimize-missing-deps/__test__/serve.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// @ts-check
// this is automtically detected by scripts/jestPerTestSetup.ts and will replace
// the default e2e test serve behavior

const path = require('path')

const port = (exports.port = 9529)

/**
* @param {string} root
* @param {boolean} isProd
*/
exports.serve = async function serve(root, isProd) {
const { createServer } = require(path.resolve(root, 'server.js'))
const { app, vite } = await createServer(root, isProd)

return new Promise((resolve, reject) => {
try {
const server = app.listen(port, () => {
resolve({
// for test teardown
async close() {
await new Promise((resolve) => {
server.close(resolve)
})
if (vite) {
await vite.close()
}
}
})
})
} catch (e) {
reject(e)
}
})
}
11 changes: 11 additions & 0 deletions packages/playground/optimize-missing-deps/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite App</title>
</head>
<body>
<!--app-html-->
</body>
</html>
3 changes: 3 additions & 0 deletions packages/playground/optimize-missing-deps/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { sayName } from 'missing-dep'

export const name = sayName()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { name } from 'multi-entry-dep'

export function sayName() {
return name
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "missing-dep",
"version": "0.0.0",
"main": "index.js",
"dependencies": {
"multi-entry-dep": "file:../multi-entry-dep"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exports.name = 'Client'
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
const path = require('path')

exports.name = path.normalize('./Server')
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "multi-entry-dep",
"version": "0.0.0",
"main": "index.js",
"browser": {
"./index.js": "./index.browser.js"
}
}
17 changes: 17 additions & 0 deletions packages/playground/optimize-missing-deps/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "optimize-missing-deps",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "node server"
},
"workspaces": {
"packages": [
"./*"
]
},
"dependencies": {
"missing-dep": "file:./missing-dep",
"multi-entry-dep": "file:./multi-entry-dep"
}
}
60 changes: 60 additions & 0 deletions packages/playground/optimize-missing-deps/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// @ts-check
const fs = require('fs')
const path = require('path')
const express = require('express')

const isTest = process.env.NODE_ENV === 'test' || !!process.env.VITE_TEST_BUILD

async function createServer(root = process.cwd()) {
const resolve = (p) => path.resolve(__dirname, p)

const app = express()

/**
* @type {import('vite').ViteDevServer}
*/
const vite = await require('vite').createServer({
root,
logLevel: isTest ? 'error' : 'info',
server: { middlewareMode: 'ssr' }
})
app.use(vite.middlewares)

app.use('*', async (req, res) => {
try {
let template = fs.readFileSync(resolve('index.html'), 'utf-8')
template = await vite.transformIndexHtml(req.originalUrl, template)

// this will import missing deps nest built-in deps that should not be optimized
const { name } = await vite.ssrLoadModule('./main.js')

// this will import missing deps that should be optimized correctly
const appHtml = `<div id="app">${name}</div>
<script type='module'>
import { name } from './main.js'
document.getElementById('app').innerText = name
</script>`

const html = template.replace(`<!--app-html-->`, appHtml)

res.status(200).set({ 'Content-Type': 'text/html' }).end(html)
} catch (e) {
vite.ssrFixStacktrace(e)
console.log(e.stack)
res.status(500).end(e.stack)
}
})

return { app, vite }
}

if (!isTest) {
createServer().then(({ app }) =>
app.listen(3000, () => {
console.log('http://localhost:3000')
})
)
}

// for test use
exports.createServer = createServer
2 changes: 1 addition & 1 deletion packages/plugin-legacy/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"homepage": "https://github.com/vitejs/vite/tree/main/packages/plugin-legacy#readme",
"dependencies": {
"@babel/standalone": "^7.15.7",
"core-js": "^3.17.3",
"core-js": "^3.18.0",
"magic-string": "^0.25.7",
"regenerator-runtime": "^0.13.9",
"systemjs": "^6.10.3"
Expand Down
12 changes: 8 additions & 4 deletions packages/plugin-react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
# 1.0.0-beta.0 (2021-09-20)
## [1.0.1](https://github.com/vitejs/vite/compare/[email protected]@1.0.1) (2021-09-22)


### Bug Fixes

* **deps:** update all non-major dependencies ([#4545](https://github.com/vitejs/vite/issues/4545)) ([a44fd5d](https://github.com/vitejs/vite/commit/a44fd5d38679da0be2536103e83af730cda73a95))
* disable `inputSourceMap` option of babel ([#4834](https://github.com/vitejs/vite/issues/4834)) ([ba89bd6](https://github.com/vitejs/vite/commit/ba89bd6df9231da85cebd089199bc4ad097af243)), closes [#4055](https://github.com/vitejs/vite/issues/4055)
* **plugin-react:** inconsistent error warning ([#5031](https://github.com/vitejs/vite/issues/5031)) ([89ba8ce](https://github.com/vitejs/vite/commit/89ba8cedb8636968516bc38b37e1d2d5ed6234bb))


### Features

# 1.0.0 (TBD)
* **plugin-react:** pre-optimize jsx-dev-runtime ([#5036](https://github.com/vitejs/vite/issues/5036)) ([a34dd27](https://github.com/vitejs/vite/commit/a34dd2725e64fedf626e23ba9ced480f5465a59b))



# [1.0.0](https://github.com/vitejs/vite/compare/[email protected]@1.0.0) (2021-09-22)

See the [readme](https://github.com/aleclarson/vite/blob/f8129ce6e87684eb7a4edd8106351c5d98207d7b/packages/plugin-react/README.md#vitejsplugin-react-) for more information.

Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@vitejs/plugin-react",
"version": "1.0.0",
"version": "1.0.1",
"license": "MIT",
"author": "Evan You",
"contributors": [
Expand Down
2 changes: 1 addition & 1 deletion packages/plugin-react/src/fast-refresh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ let prevRefreshSig;
if (!window.__vite_plugin_react_preamble_installed__) {
throw new Error(
"@vitejs/plugin-react-refresh can't detect preamble. Something is wrong. " +
"@vitejs/plugin-react can't detect preamble. Something is wrong. " +
"See https://github.com/vitejs/vite-plugin-react/pull/11#discussion_r430879201"
);
}
Expand Down
7 changes: 7 additions & 0 deletions packages/plugin-react/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,13 @@ export default function viteReact(opts: Options = {}): PluginOption[] {
const viteReactJsx: Plugin = {
name: 'vite:react-jsx',
enforce: 'pre',
config() {
return {
optimizeDeps: {
include: ['react/jsx-dev-runtime']
}
}
},
resolveId(id: string) {
return id === runtimeId ? id : null
},
Expand Down
Loading

0 comments on commit 45e7d5e

Please sign in to comment.