Skip to content

Commit 70474eb

Browse files
committed
wip(dom2): sync compiler
1 parent 793e2da commit 70474eb

File tree

7 files changed

+97
-92
lines changed

7 files changed

+97
-92
lines changed

packages/uni-app-uts/src/plugins/dom2/css.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
cssLangRE,
88
cssPlugin,
99
cssPostPlugin,
10-
genDom2ClassName,
1110
insertBeforePlugin,
1211
normalizePath,
1312
onCompileLog,
@@ -68,6 +67,7 @@ export function uniAppCssPrePlugin(): Plugin {
6867
cssCode = parseAssets(config, cssCode)
6968
const { code, messages, fontFaces } = await parseCss(cssCode, {
7069
platform: process.env.UNI_UTS_PLATFORM,
70+
helper: requireUniHelpers(),
7171
})
7272
const isDom2Harmony =
7373
process.env.UNI_APP_X_DOM2 === 'true' &&
@@ -114,12 +114,7 @@ export function uniAppCssPrePlugin(): Plugin {
114114
},
115115
emitFile(filename, cssCode) {
116116
const { ASDSF } = requireUniHelpers()
117-
ASDSF(
118-
normalizePath(filename),
119-
genDom2ClassName(filename, process.env.UNI_INPUT_DIR) +
120-
'SharedData',
121-
cssCode
122-
)
117+
ASDSF(normalizePath(filename), cssCode)
123118
},
124119
})
125120
const uvueCssInlinePostPlugin: Plugin = {
@@ -196,6 +191,7 @@ export function uniAppCssPlugin(): Plugin {
196191
// 仅做校验使用
197192
const { messages } = await parseCss(source, {
198193
platform: process.env.UNI_UTS_PLATFORM,
194+
helper: requireUniHelpers(),
199195
})
200196
let cssSourceMap: SourceMapInput | undefined
201197
if (messages.find((m) => m.type === 'warning')) {

packages/uni-cli-shared/lib/dom2/app/@vitejs/plugin-vue/dist/index.cjs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ function transformTemplateInMain(code, descriptor, options, pluginContext, ssr,
250250
}
251251
function compile(code, descriptor, options, pluginContext, ssr, customElement) {
252252
const filename = descriptor.filename;
253-
resolveScript(descriptor, options, ssr, customElement);
253+
resolveScript(false, descriptor, options, ssr, customElement);
254254
const result = options.compiler.compileTemplate({
255255
...resolveTemplateCompilerOptions(descriptor, options, ssr),
256256
source: code
@@ -319,6 +319,14 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
319319
if (lang && /tsx?$/.test(lang) && !expressionPlugins.includes("typescript")) {
320320
expressionPlugins.push("typescript");
321321
}
322+
const extraOptions = options.template?.compilerOptions?.extraOptions?.(descriptor);
323+
if (extraOptions.helper) {
324+
extraOptions.className = extraOptions.helper.GCN(
325+
descriptor.filename,
326+
process.env.UNI_INPUT_DIR
327+
);
328+
extraOptions.r = extraOptions.helper.K;
329+
}
322330
return {
323331
...options.template,
324332
// @ts-expect-error TODO remove when 3.6 is out
@@ -338,7 +346,7 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
338346
compilerOptions: {
339347
...options.template?.compilerOptions,
340348
// fixed by uts 需要额外添加参数,比如className
341-
...options.template?.compilerOptions?.extraOptions?.(descriptor),
349+
...extraOptions,
342350
scopeId: hasScoped ? `data-v-${id}` : void 0,
343351
bindingMetadata: resolvedScript ? resolvedScript.bindings : void 0,
344352
expressionPlugins,
@@ -393,10 +401,17 @@ function resolveScript(useCache, descriptor, options, ssr, customElement) {
393401
return cached;
394402
}
395403
}
404+
const extraOptions = options.script?.extraOptions?.(descriptor);
405+
if (extraOptions.helper) {
406+
extraOptions.className = extraOptions.helper.GCN(
407+
descriptor.filename,
408+
process.env.UNI_INPUT_DIR
409+
);
410+
}
396411
const resolved = options.compiler.compileScript(descriptor, {
397412
...options.script,
398-
// fixed by uts 需要额外添加参数,比如className
399-
...options.script?.extraOptions?.(descriptor),
413+
// fixed by uts 传递额外参数
414+
...extraOptions,
400415
id: descriptor.id,
401416
isProd: options.isProduction,
402417
inlineTemplate: isUseInlineTemplate(descriptor, options),
@@ -2366,7 +2381,7 @@ async function handleHotUpdate({ file, modules, read }, options, customElement,
23662381
const affectedModules = /* @__PURE__ */ new Set();
23672382
const mainModule = getMainModule(modules);
23682383
const templateModule = modules.find((m) => /type=template/.test(m.url));
2369-
resolveScript(descriptor, options, false, customElement);
2384+
resolveScript(false, descriptor, options, false, customElement);
23702385
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
23712386
if (scriptChanged) {
23722387
affectedModules.add(getScriptModule(modules) || mainModule);

packages/uni-cli-shared/lib/dom2/app/@vitejs/plugin-vue/dist/index.mjs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ function transformTemplateInMain(code, descriptor, options, pluginContext, ssr,
237237
}
238238
function compile(code, descriptor, options, pluginContext, ssr, customElement) {
239239
const filename = descriptor.filename;
240-
resolveScript(descriptor, options, ssr, customElement);
240+
resolveScript(false, descriptor, options, ssr, customElement);
241241
const result = options.compiler.compileTemplate({
242242
...resolveTemplateCompilerOptions(descriptor, options, ssr),
243243
source: code
@@ -306,6 +306,14 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
306306
if (lang && /tsx?$/.test(lang) && !expressionPlugins.includes("typescript")) {
307307
expressionPlugins.push("typescript");
308308
}
309+
const extraOptions = options.template?.compilerOptions?.extraOptions?.(descriptor);
310+
if (extraOptions.helper) {
311+
extraOptions.className = extraOptions.helper.GCN(
312+
descriptor.filename,
313+
process.env.UNI_INPUT_DIR
314+
);
315+
extraOptions.r = extraOptions.helper.K;
316+
}
309317
return {
310318
...options.template,
311319
// @ts-expect-error TODO remove when 3.6 is out
@@ -325,7 +333,7 @@ function resolveTemplateCompilerOptions(descriptor, options, ssr) {
325333
compilerOptions: {
326334
...options.template?.compilerOptions,
327335
// fixed by uts 需要额外添加参数,比如className
328-
...options.template?.compilerOptions?.extraOptions?.(descriptor),
336+
...extraOptions,
329337
scopeId: hasScoped ? `data-v-${id}` : void 0,
330338
bindingMetadata: resolvedScript ? resolvedScript.bindings : void 0,
331339
expressionPlugins,
@@ -380,10 +388,17 @@ function resolveScript(useCache, descriptor, options, ssr, customElement) {
380388
return cached;
381389
}
382390
}
391+
const extraOptions = options.script?.extraOptions?.(descriptor);
392+
if (extraOptions.helper) {
393+
extraOptions.className = extraOptions.helper.GCN(
394+
descriptor.filename,
395+
process.env.UNI_INPUT_DIR
396+
);
397+
}
383398
const resolved = options.compiler.compileScript(descriptor, {
384399
...options.script,
385-
// fixed by uts 需要额外添加参数,比如className
386-
...options.script?.extraOptions?.(descriptor),
400+
// fixed by uts 传递额外参数
401+
...extraOptions,
387402
id: descriptor.id,
388403
isProd: options.isProduction,
389404
inlineTemplate: isUseInlineTemplate(descriptor, options),
@@ -2353,7 +2368,7 @@ async function handleHotUpdate({ file, modules, read }, options, customElement,
23532368
const affectedModules = /* @__PURE__ */ new Set();
23542369
const mainModule = getMainModule(modules);
23552370
const templateModule = modules.find((m) => /type=template/.test(m.url));
2356-
resolveScript(descriptor, options, false, customElement);
2371+
resolveScript(false, descriptor, options, false, customElement);
23572372
const scriptChanged = hasScriptChanged(prevDescriptor, descriptor);
23582373
if (scriptChanged) {
23592374
affectedModules.add(getScriptModule(modules) || mainModule);

packages/uni-cli-shared/lib/dom2/app/@vue/compiler-vapor-dom2/dist/compiler-vapor-dom2.cjs.js

Lines changed: 51 additions & 48 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
export * from './utils'
21
export * from './sharedData'

packages/uni-cli-shared/src/dom2/utils.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.

packages/vite-plugin-uni/src/vue/options.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import {
1515
type UniVitePlugin,
1616
createResolveStaticAsset,
1717
createUniVueTransformAssetUrls,
18-
genDom2ClassName,
1918
getBaseNodeTransforms,
2019
isExternalUrl,
2120
isUniPageFile,
2221
matchEasycom,
2322
normalizePath,
2423
onVueTemplateCompileLog,
2524
preJs,
25+
requireUniHelpers,
2626
resolveUniTypeScript,
2727
uniPostcssScopedPlugin,
2828
} from '@dcloudio/uni-cli-shared'
@@ -296,10 +296,7 @@ export function initPluginVueOptions(
296296
) => {
297297
return {
298298
isWatch: process.env.NODE_ENV === 'development',
299-
className: genDom2ClassName(
300-
descriptor.filename,
301-
process.env.UNI_INPUT_DIR
302-
),
299+
helper: requireUniHelpers(),
303300
componentType: isUniPageFile(descriptor.filename)
304301
? 'page'
305302
: 'component',
@@ -309,16 +306,15 @@ export function initPluginVueOptions(
309306
descriptor: SFCDescriptor
310307
) => {
311308
const filename = normalizePath(descriptor.filename.split('?')[0])
312-
const className = genDom2ClassName(filename, process.env.UNI_INPUT_DIR)
313309
const relativeFilename = normalizePath(
314310
path.relative(process.env.UNI_INPUT_DIR, filename)
315311
)
316312
return {
317313
root: normalizePath(process.env.UNI_INPUT_DIR),
318-
className,
319314
platform: process.env.UNI_UTS_PLATFORM,
320315
componentType: isUniPageFile(filename) ? 'page' : 'component',
321316
relativeFilename,
317+
helper: requireUniHelpers(),
322318
scriptCppBlocks: (descriptor as any).scriptCppBlocks,
323319
onVueTemplateCompileLog(
324320
type: 'warn' | 'error',

0 commit comments

Comments
 (0)