Skip to content

Commit fe71cbc

Browse files
migrate native plugin (#41)
* update * update * update * update * update justfile * alias plugin * update plugin config * update plugin config * update plugin config * update config * update config * update config * chore: 🤖 enable more plugin
1 parent 5f1136e commit fe71cbc

File tree

3 files changed

+70
-18
lines changed

3 files changed

+70
-18
lines changed

justfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,13 @@
11
build-vite:
22
pnpm --filter vite run build-bundle
3+
4+
test-serve:
5+
pnpm run test-serve
6+
7+
test-build:
8+
pnpm run test-build
9+
10+
test: test-serve test-build
11+
12+
fmt:
13+
pnpm --filter vite run format

packages/vite/src/node/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,7 @@ export async function resolveConfig(
836836
experimental: {
837837
importGlobRestoreExtension: false,
838838
hmrPartialAccept: false,
839-
enableNativePlugin: true,
839+
enableNativePlugin: false,
840840
...config.experimental,
841841
},
842842
getSortedPlugins: undefined!,

packages/vite/src/node/plugins/index.ts

Lines changed: 58 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
import aliasPlugin, { type ResolverFunction } from '@rollup/plugin-alias'
22
import type { ObjectHook } from 'rolldown'
3+
import {
4+
aliasPlugin as nativeAliasPlugin,
5+
dynamicImportVarsPlugin as nativeDynamicImportVarsPlugin,
6+
importGlobPlugin as nativeImportGlobPlugin,
7+
jsonPlugin as nativeJsonPlugin,
8+
modulePreloadPolyfillPlugin as nativeModulePreloadPolyfillPlugin,
9+
transformPlugin as nativeTransformPlugin,
10+
wasmFallbackPlugin as nativeWasmFallbackPlugin,
11+
wasmHelperPlugin as nativeWasmHelperPlugin,
12+
} from 'rolldown/experimental'
313
import type { PluginHookUtils, ResolvedConfig } from '../config'
414
import { isDepsOptimizerEnabled } from '../config'
515
import type { HookHandler, Plugin, PluginWithRequiredHook } from '../plugin'
@@ -39,6 +49,7 @@ export async function resolvePlugins(
3949
? await (await import('../build')).resolveBuildPlugins(config)
4050
: { pre: [], post: [] }
4151
const { modulePreload } = config.build
52+
const enableNativePlugin = config.experimental.enableNativePlugin
4253
const depsOptimizerEnabled =
4354
!isBuild &&
4455
(isDepsOptimizerEnabled(config, false) ||
@@ -48,13 +59,26 @@ export async function resolvePlugins(
4859
isBuild ? metadataPlugin() : null,
4960
!isWorker ? watchPackageDataPlugin(config.packageCache) : null,
5061
preAliasPlugin(config),
51-
aliasPlugin({
52-
entries: config.resolve.alias,
53-
customResolver: viteAliasCustomResolver,
54-
}),
62+
enableNativePlugin
63+
? nativeAliasPlugin({
64+
entries: config.resolve.alias.map((item) => {
65+
return {
66+
find: item.find,
67+
replacement: item.replacement,
68+
}
69+
}),
70+
})
71+
: aliasPlugin({
72+
entries: config.resolve.alias,
73+
customResolver: viteAliasCustomResolver,
74+
}),
5575
...prePlugins,
5676
modulePreload !== false && modulePreload.polyfill
57-
? modulePreloadPolyfillPlugin(config)
77+
? enableNativePlugin
78+
? nativeModulePreloadPolyfillPlugin({
79+
skip: Boolean(config.command !== 'build' || config.build.ssr),
80+
})
81+
: modulePreloadPolyfillPlugin(config)
5882
: null,
5983
resolvePlugin({
6084
...config.resolve,
@@ -75,27 +99,44 @@ export async function resolvePlugins(
7599
}),
76100
htmlInlineProxyPlugin(config),
77101
cssPlugin(config),
78-
config.esbuild !== false ? esbuildPlugin(config) : null,
79-
jsonPlugin(
80-
{
81-
namedExports: true,
82-
...config.json,
83-
},
84-
isBuild,
85-
),
86-
wasmHelperPlugin(config),
102+
config.esbuild !== false
103+
? enableNativePlugin
104+
? nativeTransformPlugin()
105+
: esbuildPlugin(config)
106+
: null,
107+
enableNativePlugin
108+
? nativeJsonPlugin({
109+
stringify: config.json?.stringify,
110+
isBuild,
111+
})
112+
: jsonPlugin(
113+
{
114+
namedExports: true,
115+
...config.json,
116+
},
117+
isBuild,
118+
),
119+
enableNativePlugin ? nativeWasmHelperPlugin() : wasmHelperPlugin(config),
87120
webWorkerPlugin(config),
88121
assetPlugin(config),
89122
...normalPlugins,
90-
wasmFallbackPlugin(),
123+
enableNativePlugin ? nativeWasmFallbackPlugin() : wasmFallbackPlugin(),
124+
// TODO: support nativedefinePlugin
91125
definePlugin(config),
92126
cssPostPlugin(config),
93127
isBuild && buildHtmlPlugin(config),
94128
workerImportMetaUrlPlugin(config),
95129
assetImportMetaUrlPlugin(config),
96130
...buildPlugins.pre,
97-
dynamicImportVarsPlugin(config),
98-
importGlobPlugin(config),
131+
enableNativePlugin
132+
? nativeDynamicImportVarsPlugin()
133+
: dynamicImportVarsPlugin(config),
134+
enableNativePlugin
135+
? nativeImportGlobPlugin({
136+
root: config.root,
137+
restoreQueryExtension: config.experimental.importGlobRestoreExtension,
138+
})
139+
: importGlobPlugin(config),
99140
...postPlugins,
100141
...buildPlugins.post,
101142
// internal server-only plugins are always applied after everything else

0 commit comments

Comments
 (0)