Skip to content

Commit

Permalink
feat: 🎸 support native define
Browse files Browse the repository at this point in the history
  • Loading branch information
IWANABETHATGUY committed Sep 13, 2024
1 parent 39630a0 commit 48087c6
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
17 changes: 13 additions & 4 deletions packages/vite/src/node/plugins/define.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { transform } from 'esbuild'
import { TraceMap, decodedMap, encodedMap } from '@jridgewell/trace-mapping'
import type { RolldownPlugin } from 'rolldown'
import type { ResolvedConfig } from '../config'
import type { Plugin } from '../plugin'
import { escapeRegex } from '../utils'
import { isCSSRequest } from './css'
import { isHTMLRequest } from './html'
Expand All @@ -11,7 +11,7 @@ const isNonJsRequest = (request: string): boolean => nonJsRe.test(request)
const importMetaEnvMarker = '__vite_import_meta_env__'
const importMetaEnvKeyReCache = new Map<string, RegExp>()

export function definePlugin(config: ResolvedConfig): Plugin {
export function definePlugin(config: ResolvedConfig): RolldownPlugin {
const isBuild = config.command === 'build'
const isBuildLib = isBuild && config.build.lib

Expand Down Expand Up @@ -98,10 +98,10 @@ export function definePlugin(config: ResolvedConfig): Plugin {
const defaultPattern = generatePattern(false)
const ssrPattern = generatePattern(true)

return {
const plugin: RolldownPlugin = {
name: 'vite:define',

async transform(code, id, options) {
// @ts-expect-error TODO: RolldownPlugin type compatible
const ssr = options?.ssr === true
if (!ssr && !isBuild) {
// for dev we inject actual global defines in the vite client to
Expand Down Expand Up @@ -169,6 +169,15 @@ export function definePlugin(config: ResolvedConfig): Plugin {
return result
},
}
const enableNativePlugin = config.experimental.enableNativePlugin
if (enableNativePlugin) {
delete plugin.transform
plugin.options = (option) => {
const [define, _pattern, _importMetaEnvVal] = defaultPattern
option.define = define
}
}
return plugin
}

export async function replaceDefine(
Expand Down
1 change: 0 additions & 1 deletion packages/vite/src/node/plugins/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@ export async function resolvePlugins(
assetPlugin(config),
...normalPlugins,
enableNativePlugin ? nativeWasmFallbackPlugin() : wasmFallbackPlugin(),
// TODO: support nativedefinePlugin
definePlugin(config),
cssPostPlugin(config),
isBuild && buildHtmlPlugin(config),
Expand Down

0 comments on commit 48087c6

Please sign in to comment.