Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(legacy): remove code for Vite 2 #9640

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 23 additions & 48 deletions packages/plugin-legacy/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -159,19 +159,29 @@ function viteLegacyPlugin(options: Options = {}): Plugin[] {
const legacyConfigPlugin: Plugin = {
name: 'vite:legacy-config',

apply: 'build',
config(config) {
if (!config.build) {
config.build = {}
config(config, env) {
if (env.command === 'build') {
if (!config.build) {
config.build = {}
}

if (!config.build.cssTarget) {
// Hint for esbuild that we are targeting legacy browsers when minifying CSS.
// Full CSS compat table available at https://github.com/evanw/esbuild/blob/78e04680228cf989bdd7d471e02bbc2c8d345dc9/internal/compat/css_table.go
// But note that only the `HexRGBA` feature affects the minify outcome.
// HSL & rebeccapurple values will be minified away regardless the target.
// So targeting `chrome61` suffices to fix the compatibility issue.
config.build.cssTarget = 'chrome61'
}
}

if (!config.build.cssTarget) {
// Hint for esbuild that we are targeting legacy browsers when minifying CSS.
// Full CSS compat table available at https://github.com/evanw/esbuild/blob/78e04680228cf989bdd7d471e02bbc2c8d345dc9/internal/compat/css_table.go
// But note that only the `HexRGBA` feature affects the minify outcome.
// HSL & rebeccapurple values will be minified away regardless the target.
// So targeting `chrome61` suffices to fix the compatibility issue.
config.build.cssTarget = 'chrome61'
return {
define: {
'import.meta.env.LEGACY':
env.command === 'serve' || config.build?.ssr
? false
: legacyEnvVarMarker
}
}
}
}
Expand Down Expand Up @@ -547,41 +557,7 @@ function viteLegacyPlugin(options: Options = {}): Plugin[] {
}
}

let envInjectionFailed = false
const legacyEnvPlugin: Plugin = {
name: 'vite:legacy-env',

config(config, env) {
if (env) {
return {
define: {
'import.meta.env.LEGACY':
env.command === 'serve' || config.build?.ssr
? false
: legacyEnvVarMarker
}
}
} else {
envInjectionFailed = true
}
},

configResolved(config) {
if (envInjectionFailed) {
config.logger.warn(
`[@vitejs/plugin-legacy] import.meta.env.LEGACY was not injected due ` +
`to incompatible vite version (requires vite@^2.0.0-beta.69).`
)
}
}
}
Comment on lines -550 to -577
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed envInjectionFailed and merged into vite:legacy-config plugin.


return [
legacyConfigPlugin,
legacyGenerateBundlePlugin,
legacyPostPlugin,
legacyEnvPlugin
]
return [legacyConfigPlugin, legacyGenerateBundlePlugin, legacyPostPlugin]
}

export async function detectPolyfills(
Expand Down Expand Up @@ -667,8 +643,7 @@ async function buildPolyfillChunk(
},
output: {
format,
entryFileNames: rollupOutputOptions.entryFileNames,
manualChunks: undefined
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed since vendor-split chunking strategy was removed in Vite 2.9.

entryFileNames: rollupOutputOptions.entryFileNames
}
}
}
Expand Down