@dcloudio/uni-cli-shared 3.0.0-5000720260410001 → 3.0.0-5010520260709001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -3
- package/dist/constants.js +2 -6
- package/dist/deps.d.ts +1 -0
- package/dist/deps.js +22 -13
- package/dist/dom2/fontFamily.d.ts +4 -0
- package/dist/dom2/fontFamily.js +21 -0
- package/dist/dom2/index.d.ts +3 -0
- package/dist/dom2/index.js +3 -0
- package/dist/dom2/rootScrollView.d.ts +47 -0
- package/dist/dom2/rootScrollView.js +283 -0
- package/dist/dom2/sharedData.d.ts +4 -0
- package/dist/dom2/sharedData.js +40 -5
- package/dist/dom2/vue.d.ts +16 -0
- package/dist/dom2/vue.js +37 -0
- package/dist/easycom.d.ts +1 -0
- package/dist/easycom.js +23 -9
- package/dist/env/define.d.ts +0 -1
- package/dist/env/define.js +3 -11
- package/dist/hbx/alias.js +64 -10
- package/dist/hbx/log.js +9 -2
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/dist/json/app/manifest/plus.js +9 -1
- package/dist/json/app/pages/definePage.js +3 -1
- package/dist/json/index.d.ts +1 -1
- package/dist/json/index.js +2 -1
- package/dist/json/mp/index.d.ts +2 -0
- package/dist/json/mp/index.js +23 -1
- package/dist/json/mp/jsonFile.d.ts +3 -2
- package/dist/json/mp/jsonFile.js +83 -13
- package/dist/json/mp/pages.d.ts +1 -0
- package/dist/json/mp/pages.js +6 -2
- package/dist/json/mp/subpackage.d.ts +26 -0
- package/dist/json/mp/subpackage.js +236 -0
- package/dist/json/uni-x/index.d.ts +6 -0
- package/dist/json/uni-x/index.js +54 -1
- package/dist/json/uni-x/manifest.d.ts +1 -1
- package/dist/json/uni-x/manifest.js +2 -1
- package/dist/json/utils.js +24 -0
- package/dist/logs/console.js +4 -1
- package/dist/messages/en.d.ts +11 -2
- package/dist/messages/en.js +11 -2
- package/dist/messages/index.d.ts +22 -4
- package/dist/messages/zh_CN.d.ts +11 -2
- package/dist/messages/zh_CN.js +11 -2
- package/dist/mp/style.js +6 -2
- package/dist/mp/usingComponents.d.ts +7 -5
- package/dist/mp/usingComponents.js +63 -34
- package/dist/postcss/plugins/stylePluginExternal.d.ts +9 -10
- package/dist/postcss/plugins/stylePluginExternal.js +51 -45
- package/dist/resolve.d.ts +1 -0
- package/dist/resolve.js +9 -2
- package/dist/uni_modules.cloud.d.ts +7 -1
- package/dist/uni_modules.cloud.js +131 -14
- package/dist/uni_modules.js +3 -2
- package/dist/utils.js +5 -0
- package/dist/uts.d.ts +1 -0
- package/dist/uts.js +90 -6
- package/dist/vite/autoImport.js +7 -4
- package/dist/vite/cloud.js +13 -6
- package/dist/vite/extApi.js +4 -1
- package/dist/vite/plugins/cssScoped.js +11 -2
- package/dist/vite/plugins/easycom.js +3 -1
- package/dist/vite/plugins/inject.js +11 -3
- package/dist/vite/plugins/json.js +2 -69
- package/dist/vite/plugins/jsonJs.js +41 -3
- package/dist/vite/plugins/pre.js +2 -0
- package/dist/vite/plugins/sfc.js +4 -1
- package/dist/vite/plugins/stats.d.ts +5 -1
- package/dist/vite/plugins/stats.js +74 -3
- package/dist/vite/plugins/uts/uni_modules.d.ts +1 -1
- package/dist/vite/plugins/uts/uni_modules.js +30 -12
- package/dist/vite/plugins/vitejs/plugins/asset.js +14 -1
- package/dist/vite/plugins/vitejs/plugins/css.d.ts +2 -2
- package/dist/vite/plugins/vitejs/plugins/css.js +45 -6
- package/dist/vue/transforms/index.d.ts +1 -0
- package/dist/vue/transforms/index.js +2 -1
- package/dist/vue/transforms/transformTeleport.d.ts +2 -0
- package/dist/vue/transforms/transformTeleport.js +68 -0
- package/dist/vue/transforms/x/transformDirection.js +33 -4
- package/dist/workers.d.ts +1 -0
- package/dist/workers.js +12 -5
- package/dist/x.d.ts +11 -0
- package/dist/x.js +43 -0
- package/lib/dom2/app/@vitejs/plugin-vue/dist/index.cjs +0 -7
- package/lib/dom2/app/@vitejs/plugin-vue/dist/index.mjs +0 -7
- package/lib/dom2/app/@vue/compiler-core/dist/compiler-core.cjs.js +58 -63
- package/lib/dom2/app/@vue/compiler-core/dist/compiler-core.cjs.prod.js +58 -63
- package/lib/dom2/app/@vue/compiler-core/dist/compiler-core.d.ts +7 -1
- package/lib/dom2/app/@vue/compiler-core/dist/compiler-core.esm-bundler.js +22 -47
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.cjs.js +12 -23
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +12 -22
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.esm-browser.js +23 -74
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.esm-browser.prod.js +5 -5
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js +3 -20
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.global.js +310 -363
- package/lib/dom2/app/@vue/compiler-dom/dist/compiler-dom.global.prod.js +5 -5
- package/lib/dom2/app/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +810 -579
- package/lib/dom2/app/@vue/compiler-sfc/dist/compiler-sfc.d.ts +33 -11114
- package/lib/dom2/app/@vue/compiler-sfc/dist/compiler-sfc.esm-browser.js +1638 -1250
- package/lib/dom2/app/@vue/compiler-vapor/dist/compiler-vapor.cjs.js +1031 -599
- package/lib/dom2/app/@vue/compiler-vapor/dist/compiler-vapor.d.ts +470 -328
- package/lib/dom2/app/@vue/compiler-vapor/dist/compiler-vapor.esm-browser.js +1154 -709
- package/lib/dom2/app/@vue/compiler-vapor-dom2/dist/compiler-vapor-dom2.cjs.js +1 -1
- package/lib/dom2/app/@vue/shared/dist/shared.cjs.js +16 -25
- package/lib/dom2/app/@vue/shared/dist/shared.cjs.prod.js +16 -25
- package/lib/dom2/app/@vue/shared/dist/shared.d.ts +5 -0
- package/lib/dom2/app/@vue/shared/dist/shared.esm-bundler.js +11 -23
- package/package.json +6 -6
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.virtualComponentPath = exports.parseUniModulesArtifacts = exports.getUniModulesEncryptType = exports.checkEncryptUniModules = exports.resolveEncryptUniModule = exports.initCheckEnv = exports.packUploadEncryptUniModules = exports.findUploadEncryptUniModulesFiles = exports.findCloudEncryptUniModules = exports.parseEasyComComponents = exports.parseUniModulesWithComponents = exports.genEncryptUTSModuleCode = exports.genEncryptEasyComModuleCode = void 0;
|
|
6
|
+
exports.virtualComponentPath = exports.copyEncryptUniModulesDom2Bytes = exports.parseUniModulesArtifacts = exports.getUniModulesEncryptType = exports.checkEncryptUniModules = exports.validateCloudCompileAppInfo = exports.resolveEncryptUniModule = exports.initCheckEnv = exports.packUploadEncryptUniModules = exports.findUploadEncryptUniModulesFiles = exports.findCloudEncryptUniModules = exports.parseEasyComComponents = exports.parseUniModulesWithComponents = exports.genEncryptUTSModuleCode = exports.genEncryptEasyComModuleCode = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const fast_glob_1 = require("fast-glob");
|
|
@@ -12,6 +12,7 @@ const easycom_1 = require("./easycom");
|
|
|
12
12
|
const messages_1 = require("./messages");
|
|
13
13
|
const constants_1 = require("./constants");
|
|
14
14
|
const url_1 = require("./url");
|
|
15
|
+
const x_1 = require("./x");
|
|
15
16
|
function genEncryptEasyComModuleIndex(pluginId, platform, components) {
|
|
16
17
|
const isMp = platform.startsWith('mp-');
|
|
17
18
|
const imports = [];
|
|
@@ -23,7 +24,7 @@ function genEncryptEasyComModuleIndex(pluginId, platform, components) {
|
|
|
23
24
|
ids.push(id);
|
|
24
25
|
}
|
|
25
26
|
let instance = '';
|
|
26
|
-
if (
|
|
27
|
+
if ((0, x_1.isUniAppXAndroidNative)(platform)) {
|
|
27
28
|
instance = (0, easycom_1.genUTSComponentPublicInstanceIdent)(component);
|
|
28
29
|
// 类型
|
|
29
30
|
ids.push(instance);
|
|
@@ -307,20 +308,22 @@ const KNOWN_ASSET_TYPES = [
|
|
|
307
308
|
'txt',
|
|
308
309
|
];
|
|
309
310
|
function findUniModuleFiles(platform, id, inputDir) {
|
|
311
|
+
const useUniAppXAndroidNative = (0, x_1.isUniAppXAndroidNative)(platform);
|
|
310
312
|
return (0, fast_glob_1.sync)(`uni_modules/${id}/**/*`, {
|
|
311
313
|
cwd: inputDir,
|
|
312
314
|
absolute: true,
|
|
313
315
|
ignore: [
|
|
314
316
|
'**/*.md',
|
|
315
|
-
...(
|
|
316
|
-
? [
|
|
317
|
-
: []),
|
|
317
|
+
...(useUniAppXAndroidNative // 仅旧版 Android x 需要扫描 assets
|
|
318
|
+
? []
|
|
319
|
+
: [`**/*.{${KNOWN_ASSET_TYPES.join(',')}}`]),
|
|
318
320
|
],
|
|
319
321
|
});
|
|
320
322
|
}
|
|
321
323
|
function initCheckEnv() {
|
|
322
324
|
return {
|
|
323
325
|
// 云端编译的版本号不带日期及小版本
|
|
326
|
+
vapor: process.env.UNI_APP_X_DOM2 === 'true',
|
|
324
327
|
compilerVersion: process.env.UNI_COMPILER_VERSION,
|
|
325
328
|
};
|
|
326
329
|
}
|
|
@@ -334,6 +337,9 @@ function findLastIndex(array, predicate) {
|
|
|
334
337
|
return -1;
|
|
335
338
|
}
|
|
336
339
|
let encryptUniModules = {};
|
|
340
|
+
function refreshEncryptUniModules(platform, inputDir) {
|
|
341
|
+
encryptUniModules = findCloudEncryptUniModules(platform, inputDir, process.env.UNI_MODULES_ENCRYPT_CACHE_DIR, 'all');
|
|
342
|
+
}
|
|
337
343
|
function resolveEncryptUniModule(id, platform, isX = true) {
|
|
338
344
|
id = id.split('?', 2)[0];
|
|
339
345
|
const parts = id.split('/');
|
|
@@ -367,31 +373,62 @@ function resolveEncryptUniModule(id, platform, isX = true) {
|
|
|
367
373
|
}
|
|
368
374
|
}
|
|
369
375
|
}
|
|
370
|
-
//
|
|
371
|
-
return (0, utils_1.normalizePath)(path_1.default.join(process.env.UNI_INPUT_DIR, `uni_modules/${uniModuleId}?${isX &&
|
|
376
|
+
// 仅旧版 Android x 原生引擎走 uts-proxy,JS 引擎与其他平台统一走 uni_helpers
|
|
377
|
+
return (0, utils_1.normalizePath)(path_1.default.join(process.env.UNI_INPUT_DIR, `uni_modules/${uniModuleId}?${isX && (0, x_1.isUniAppXAndroidNative)(platform)
|
|
378
|
+
? 'uts-proxy'
|
|
379
|
+
: 'uni_helpers'}`));
|
|
372
380
|
}
|
|
373
381
|
}
|
|
374
382
|
}
|
|
375
383
|
exports.resolveEncryptUniModule = resolveEncryptUniModule;
|
|
384
|
+
function validateCloudCompileAppInfo(params) {
|
|
385
|
+
const missingFields = [];
|
|
386
|
+
if (!String(params.appid || '').trim()) {
|
|
387
|
+
missingFields.push('appid');
|
|
388
|
+
}
|
|
389
|
+
if (!String(params.appname || '').trim()) {
|
|
390
|
+
missingFields.push('name');
|
|
391
|
+
}
|
|
392
|
+
if (missingFields.length) {
|
|
393
|
+
return `云编译插件失败:manifest.json 缺少 ${missingFields.join('、')},请先配置后重新编译。`;
|
|
394
|
+
}
|
|
395
|
+
return '';
|
|
396
|
+
}
|
|
397
|
+
exports.validateCloudCompileAppInfo = validateCloudCompileAppInfo;
|
|
376
398
|
async function checkEncryptUniModules(inputDir, params, sdkType = 'all') {
|
|
399
|
+
const isHarmonySplitCompile = params.platform === 'app-harmony' && sdkType !== 'all';
|
|
377
400
|
// 初始化指定 sdk 类型的加密插件
|
|
378
401
|
const curEncryptUniModules = findCloudEncryptUniModules(params.platform, inputDir, process.env.UNI_MODULES_ENCRYPT_CACHE_DIR, sdkType);
|
|
379
402
|
if (!Object.keys(curEncryptUniModules).length) {
|
|
403
|
+
// 鸿蒙会按 utssdk/easycom 分两次扫描,这里回填一次全量状态,避免子集扫描把插件类型覆盖掉
|
|
404
|
+
if (isHarmonySplitCompile) {
|
|
405
|
+
refreshEncryptUniModules(params.platform, inputDir);
|
|
406
|
+
}
|
|
380
407
|
return {};
|
|
381
408
|
}
|
|
382
409
|
if (!process.env.UNI_HBUILDERX_PLUGINS) {
|
|
410
|
+
if (isHarmonySplitCompile) {
|
|
411
|
+
refreshEncryptUniModules(params.platform, inputDir);
|
|
412
|
+
}
|
|
383
413
|
return {};
|
|
384
414
|
}
|
|
385
415
|
const cacheDir = process.env.UNI_MODULES_ENCRYPT_CACHE_DIR;
|
|
386
|
-
const
|
|
416
|
+
const needsCloudCompile = Object.keys(curEncryptUniModules).some((uniModuleId) => !curEncryptUniModules[uniModuleId]);
|
|
417
|
+
if (params.vapor && needsCloudCompile) {
|
|
418
|
+
const validateAppInfoError = validateCloudCompileAppInfo(params);
|
|
419
|
+
if (validateAppInfoError) {
|
|
420
|
+
console.error(validateAppInfoError);
|
|
421
|
+
return process.exit(0);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
const { zipFile, modules } = packUploadEncryptUniModules(curEncryptUniModules, params.platform, inputDir, cacheDir);
|
|
387
425
|
if (zipFile) {
|
|
388
426
|
const downloadFile = path_1.default.resolve(cacheDir, 'uni_modules.download.zip');
|
|
389
427
|
const { C, D, R, U } = (0, utils_1.requireUniHelpers)();
|
|
390
428
|
try {
|
|
391
429
|
const isLogin = await C();
|
|
392
|
-
const
|
|
393
|
-
|
|
394
|
-
: '';
|
|
430
|
+
const useUniAppXAndroidNative = (0, x_1.isUniAppXAndroidNative)(params.platform);
|
|
431
|
+
const tips = !useUniAppXAndroidNative ? '(此过程耗时较长)' : '';
|
|
395
432
|
console.log(`正在云编译插件${isLogin ? '' : '(请先登录)'}${tips}:${modules.join(',')}...`);
|
|
396
433
|
let downloadUrl = '';
|
|
397
434
|
try {
|
|
@@ -414,6 +451,7 @@ async function checkEncryptUniModules(inputDir, params, sdkType = 'all') {
|
|
|
414
451
|
const AdmZip = require('adm-zip');
|
|
415
452
|
const zip = new AdmZip(downloadFile);
|
|
416
453
|
zip.extractAllTo(cacheDir, true);
|
|
454
|
+
await Promise.resolve(copyEncryptUniModulesDom2Bytes());
|
|
417
455
|
fs_extra_1.default.unlinkSync(zipFile);
|
|
418
456
|
fs_extra_1.default.unlinkSync(downloadFile);
|
|
419
457
|
R({
|
|
@@ -431,8 +469,10 @@ async function checkEncryptUniModules(inputDir, params, sdkType = 'all') {
|
|
|
431
469
|
}
|
|
432
470
|
}
|
|
433
471
|
else {
|
|
434
|
-
|
|
435
|
-
|
|
472
|
+
await Promise.resolve(copyEncryptUniModulesDom2Bytes());
|
|
473
|
+
const useUniAppXAndroidNative = (0, x_1.isUniAppXAndroidNative)(params.platform);
|
|
474
|
+
// 仅旧版 Android x 需要在缓存命中时额外初始化
|
|
475
|
+
if (useUniAppXAndroidNative) {
|
|
436
476
|
const { R } = (0, utils_1.requireUniHelpers)();
|
|
437
477
|
R({
|
|
438
478
|
dir: process.env.UNI_INPUT_DIR,
|
|
@@ -441,7 +481,7 @@ async function checkEncryptUniModules(inputDir, params, sdkType = 'all') {
|
|
|
441
481
|
}
|
|
442
482
|
}
|
|
443
483
|
// 初始化所有
|
|
444
|
-
|
|
484
|
+
refreshEncryptUniModules(params.platform, inputDir);
|
|
445
485
|
}
|
|
446
486
|
exports.checkEncryptUniModules = checkEncryptUniModules;
|
|
447
487
|
function getUniModulesEncryptType(pluginId) {
|
|
@@ -464,6 +504,83 @@ function parseUniModulesArtifacts() {
|
|
|
464
504
|
return res;
|
|
465
505
|
}
|
|
466
506
|
exports.parseUniModulesArtifacts = parseUniModulesArtifacts;
|
|
507
|
+
function copyEncryptUniModulesDom2Bytes() {
|
|
508
|
+
if (process.env.UNI_APP_X_DOM2 !== 'true') {
|
|
509
|
+
return false;
|
|
510
|
+
}
|
|
511
|
+
if (!['app-android', 'app-ios', 'app-harmony'].includes(process.env.UNI_UTS_PLATFORM)) {
|
|
512
|
+
return false;
|
|
513
|
+
}
|
|
514
|
+
const cacheDir = process.env.UNI_MODULES_ENCRYPT_CACHE_DIR;
|
|
515
|
+
const outputDir = process.env.UNI_OUTPUT_DIR;
|
|
516
|
+
if (!cacheDir || !outputDir) {
|
|
517
|
+
return false;
|
|
518
|
+
}
|
|
519
|
+
if (process.env.UNI_APP_X_VAPOR_RENDER_TARGET === 'bytecode') {
|
|
520
|
+
return copyEncryptUniModulesDom2BytesTarget(cacheDir, outputDir);
|
|
521
|
+
}
|
|
522
|
+
if (process.env.UNI_APP_X_VAPOR_RENDER_TARGET === 'nativecode') {
|
|
523
|
+
return copyEncryptUniModulesDom2CppTarget(cacheDir, outputDir);
|
|
524
|
+
}
|
|
525
|
+
return false;
|
|
526
|
+
}
|
|
527
|
+
exports.copyEncryptUniModulesDom2Bytes = copyEncryptUniModulesDom2Bytes;
|
|
528
|
+
function copyEncryptUniModulesDom2BytesTarget(cacheDir, outputDir) {
|
|
529
|
+
// 只依赖编译环境变量定位缓存目录和输出目录,避免拼接具体 unpackage/dist 路径。
|
|
530
|
+
const sourceBytesDir = path_1.default.resolve(cacheDir, 'bytes');
|
|
531
|
+
if (!fs_extra_1.default.existsSync(sourceBytesDir) ||
|
|
532
|
+
!fs_extra_1.default.statSync(sourceBytesDir).isDirectory()) {
|
|
533
|
+
return false;
|
|
534
|
+
}
|
|
535
|
+
const outputBytesDir = path_1.default.resolve(outputDir, 'bytes');
|
|
536
|
+
// 云编译产出的 bytecode 在缓存目录中,这里只合并复制到当前编译输出目录。
|
|
537
|
+
fs_extra_1.default.copySync(sourceBytesDir, outputBytesDir, { overwrite: true });
|
|
538
|
+
return true;
|
|
539
|
+
}
|
|
540
|
+
async function copyEncryptUniModulesDom2CppTarget(cacheDir, outputDir) {
|
|
541
|
+
const sourceCppDir = path_1.default.resolve(cacheDir, 'cpp');
|
|
542
|
+
if (!fs_extra_1.default.existsSync(sourceCppDir) ||
|
|
543
|
+
!fs_extra_1.default.statSync(sourceCppDir).isDirectory()) {
|
|
544
|
+
return false;
|
|
545
|
+
}
|
|
546
|
+
const outputCppDir = process.env.UNI_APP_X_DOM2_CPP_DIR || path_1.default.resolve(outputDir, 'cpp');
|
|
547
|
+
// nativecode 的 cpp/h 暂时不走 DUM 解密,直接复制云端产物。
|
|
548
|
+
// const cppFiles = sync('**/*.{cpp,h}', {
|
|
549
|
+
// absolute: false,
|
|
550
|
+
// cwd: sourceCppDir,
|
|
551
|
+
// onlyFiles: true,
|
|
552
|
+
// }).filter((file) => !isIgnoreDom2CppFile(file))
|
|
553
|
+
// if (cppFiles.length) {
|
|
554
|
+
// const files = cppFiles.reduce((files, file) => {
|
|
555
|
+
// files[path.resolve(sourceCppDir, file)] = path.resolve(outputCppDir, file)
|
|
556
|
+
// return files
|
|
557
|
+
// }, {} as Record<string, string>)
|
|
558
|
+
// const { DUM } = requireUniHelpers()
|
|
559
|
+
// const errMsg = await DUM(path.basename(sourceCppDir), files)
|
|
560
|
+
// if (errMsg) {
|
|
561
|
+
// console.error(errMsg)
|
|
562
|
+
// process.exit(0)
|
|
563
|
+
// }
|
|
564
|
+
// }
|
|
565
|
+
// cpp 目录保持原目录结构直接复制,shared_data_init.h 由当前编译流程生成,不复制云端缓存版本。
|
|
566
|
+
fs_extra_1.default.copySync(sourceCppDir, outputCppDir, {
|
|
567
|
+
filter(src) {
|
|
568
|
+
if (fs_extra_1.default.statSync(src).isDirectory()) {
|
|
569
|
+
return true;
|
|
570
|
+
}
|
|
571
|
+
// shared_data_init.h 由当前编译生成,不能复制云端缓存里的旧文件覆盖本地结果。
|
|
572
|
+
if (isIgnoreDom2CppFile(src)) {
|
|
573
|
+
return false;
|
|
574
|
+
}
|
|
575
|
+
return true;
|
|
576
|
+
},
|
|
577
|
+
overwrite: true,
|
|
578
|
+
});
|
|
579
|
+
return true;
|
|
580
|
+
}
|
|
581
|
+
function isIgnoreDom2CppFile(filename) {
|
|
582
|
+
return path_1.default.basename(filename) === 'shared_data_init.h';
|
|
583
|
+
}
|
|
467
584
|
const uniComponentPrefix = 'uniComponent://';
|
|
468
585
|
function virtualComponentPath(filepath) {
|
|
469
586
|
return uniComponentPrefix + (0, url_1.encodeBase64Url)(filepath);
|
package/dist/uni_modules.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.parseUTSModuleDeps = exports.capitalize = exports.camelize = exports.par
|
|
|
7
7
|
// 重要:此文件编译后的js,需同步至 vue2 编译器中 uni-cli-shared/lib/uts/uni_modules.js
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
10
|
+
const x_1 = require("./x");
|
|
10
11
|
const extApiProviders = [];
|
|
11
12
|
const extApiPlugins = new Set();
|
|
12
13
|
function getNonTreeShakingPlugins() {
|
|
@@ -228,7 +229,7 @@ function parseInjects(vite = true, platform, language, source, uniModuleRootDir,
|
|
|
228
229
|
// source = `${source}/utssdk/index.uts`
|
|
229
230
|
// }
|
|
230
231
|
}
|
|
231
|
-
else if (
|
|
232
|
+
else if ((0, x_1.isUniAppXJsEngine)()) {
|
|
232
233
|
if (fs_extra_1.default.existsSync(path_1.default.resolve(uniModuleRootDir, 'utssdk', 'app-js', 'index.uts'))) {
|
|
233
234
|
source = `${source}/utssdk/app-js/index.uts`;
|
|
234
235
|
}
|
|
@@ -291,7 +292,7 @@ function parseInject(vite = true, platform, language, source, globalObject, defi
|
|
|
291
292
|
const appOptions = defineOptions.app;
|
|
292
293
|
if (isPlainObject(appOptions)) {
|
|
293
294
|
// js engine 下且存在 app-js,不检查
|
|
294
|
-
const skipCheck = (
|
|
295
|
+
const skipCheck = ((0, x_1.isUniAppXJsEngine)() ||
|
|
295
296
|
process.env.UNI_UTS_PLATFORM === 'app-harmony') &&
|
|
296
297
|
source.includes('app-js');
|
|
297
298
|
if (!skipCheck) {
|
package/dist/utils.js
CHANGED
|
@@ -175,6 +175,11 @@ function enableSourceMap() {
|
|
|
175
175
|
if (process.env.UNI_APP_SOURCEMAP === 'false') {
|
|
176
176
|
return false;
|
|
177
177
|
}
|
|
178
|
+
if (process.env.NODE_ENV === 'development' &&
|
|
179
|
+
process.env.UNI_PLATFORM === 'app' &&
|
|
180
|
+
process.env.UNI_APP_X !== 'true') {
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
178
183
|
return process.env.NODE_ENV === 'development' && isNormalCompileTarget();
|
|
179
184
|
}
|
|
180
185
|
exports.enableSourceMap = enableSourceMap;
|
package/dist/uts.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { EasycomMatcher } from './easycom';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function resolveUTSAppModule(platform: typeof process.env.UNI_UTS_PLATFORM, id: string, importer: string, includeUTSSDK?: boolean): string | undefined;
|
|
13
13
|
export declare function resolveUTSModule(id: string, importer: string, includeUTSSDK?: boolean): string | undefined;
|
|
14
|
+
export declare function hasUTSModulePlatformFile(pluginDir: string, platform: typeof process.env.UNI_UTS_PLATFORM): boolean;
|
|
14
15
|
export declare function resolveUTSCompiler(throwError?: boolean): typeof UTSCompiler;
|
|
15
16
|
export declare function resolveUTSCompilerVersion(): string;
|
|
16
17
|
interface UTSComponentMeta {
|
package/dist/uts.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isUniHelpers = exports.isUTSProxy = exports.tscOutDir = exports.uvueOutDir = exports.genUniExtApiDeclarationFileOnce = exports.initUTSSwiftAutoImportsOnce = exports.initUTSKotlinAutoImportsOnce = exports.resolveUniTypeScript = exports.parseUniExtApiNamespacesJsOnce = exports.parseUniExtApiNamespacesOnce = exports.parseSwiftModuleWithPluginId = exports.parseSwiftPackageWithPluginId = exports.parseKotlinPackageWithPluginId = exports.parseCustomElementExports = exports.initUTSCustomElements = exports.initUTSComponents = exports.parseUTSCustomElement = exports.parseUTSComponent = exports.getUTSCustomElementAutoImports = exports.getUTSComponentAutoImports = exports.getUTSCustomElement = exports.isUTSCustomElement = exports.getUTSPluginCustomElements = exports.getUTSCustomElements = exports.clearUTSCustomElements = exports.isUTSComponent = exports.clearUTSComponents = exports.getUTSCustomElementsExports = exports.resolveUTSCompilerVersion = exports.resolveUTSCompiler = exports.resolveUTSModule = exports.resolveUTSAppModule = void 0;
|
|
6
|
+
exports.isUniHelpers = exports.isUTSProxy = exports.tscOutDir = exports.uvueOutDir = exports.genUniExtApiDeclarationFileOnce = exports.initUTSSwiftAutoImportsOnce = exports.initUTSKotlinAutoImportsOnce = exports.resolveUniTypeScript = exports.parseUniExtApiNamespacesJsOnce = exports.parseUniExtApiNamespacesOnce = exports.parseSwiftModuleWithPluginId = exports.parseSwiftPackageWithPluginId = exports.parseKotlinPackageWithPluginId = exports.parseCustomElementExports = exports.initUTSCustomElements = exports.initUTSComponents = exports.parseUTSCustomElement = exports.parseUTSComponent = exports.getUTSCustomElementAutoImports = exports.getUTSComponentAutoImports = exports.getUTSCustomElement = exports.isUTSCustomElement = exports.getUTSPluginCustomElements = exports.getUTSCustomElements = exports.clearUTSCustomElements = exports.isUTSComponent = exports.clearUTSComponents = exports.getUTSCustomElementsExports = exports.resolveUTSCompilerVersion = exports.resolveUTSCompiler = exports.hasUTSModulePlatformFile = exports.resolveUTSModule = exports.resolveUTSAppModule = void 0;
|
|
7
7
|
// 重要,该文件编译后的 js 需要同步到 vue2 编译器 uni-cli-shared/lib/uts
|
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
@@ -11,7 +11,10 @@ const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
|
11
11
|
const unimport_1 = require("unimport");
|
|
12
12
|
const hbx_1 = require("./hbx");
|
|
13
13
|
const utils_1 = require("./utils");
|
|
14
|
+
const messages_1 = require("./messages");
|
|
14
15
|
const uni_modules_1 = require("./uni_modules");
|
|
16
|
+
const preprocess_1 = require("./preprocess");
|
|
17
|
+
const x_1 = require("./x");
|
|
15
18
|
function once(fn, ctx = null) {
|
|
16
19
|
let res;
|
|
17
20
|
return ((...args) => {
|
|
@@ -36,7 +39,7 @@ function resolveUTSAppModule(platform, id, importer, includeUTSSDK = true) {
|
|
|
36
39
|
if (parentDir === 'uni_modules' ||
|
|
37
40
|
(includeUTSSDK && parentDir === 'utssdk')) {
|
|
38
41
|
const basedir = parentDir === 'uni_modules' ? 'utssdk' : '';
|
|
39
|
-
if (
|
|
42
|
+
if ((0, x_1.isUniAppXJsEngine)()) {
|
|
40
43
|
// js engine
|
|
41
44
|
if (parentDir === 'uni_modules') {
|
|
42
45
|
const appJsIndex = path_1.default.resolve(id, basedir, 'app-js', 'index.uts');
|
|
@@ -74,21 +77,64 @@ function resolveUTSAppModule(platform, id, importer, includeUTSSDK = true) {
|
|
|
74
77
|
};
|
|
75
78
|
const extname = ['.uts', '.vue', '.uvue'];
|
|
76
79
|
if (platform === 'app-harmony') {
|
|
77
|
-
|
|
80
|
+
const indexFile = resolveUTSFile(resolvePlatformDir(platform), extname);
|
|
81
|
+
// dom2 下,如果平台入口直接是 utssdk/平台/index.vue,
|
|
82
|
+
// 说明该插件仍然使用旧版 uni-app 兼容模式组件实现,需要提前给出明确提示。
|
|
83
|
+
if (isDom2CompatibleVueComponent(indexFile)) {
|
|
84
|
+
throw createDom2CompatibleComponentError(path_1.default.basename(id), indexFile);
|
|
85
|
+
}
|
|
86
|
+
if (indexFile) {
|
|
78
87
|
return id;
|
|
79
88
|
}
|
|
80
89
|
return;
|
|
81
90
|
}
|
|
82
|
-
|
|
91
|
+
const appAndroidIndexFile = resolveUTSFile(resolvePlatformDir('app-android'), extname);
|
|
92
|
+
// Android / iOS 保持与现有解析顺序一致,只在命中旧版兼容模式入口时中断。
|
|
93
|
+
if (isDom2CompatibleVueComponent(appAndroidIndexFile)) {
|
|
94
|
+
throw createDom2CompatibleComponentError(path_1.default.basename(id), appAndroidIndexFile);
|
|
95
|
+
}
|
|
96
|
+
if (appAndroidIndexFile) {
|
|
83
97
|
return id;
|
|
84
98
|
}
|
|
85
|
-
|
|
99
|
+
const appIOSIndexFile = resolveUTSFile(resolvePlatformDir('app-ios'), extname);
|
|
100
|
+
if (isDom2CompatibleVueComponent(appIOSIndexFile)) {
|
|
101
|
+
throw createDom2CompatibleComponentError(path_1.default.basename(id), appIOSIndexFile);
|
|
102
|
+
}
|
|
103
|
+
if (appIOSIndexFile) {
|
|
86
104
|
return id;
|
|
87
105
|
}
|
|
88
106
|
}
|
|
89
107
|
}
|
|
90
108
|
}
|
|
91
109
|
exports.resolveUTSAppModule = resolveUTSAppModule;
|
|
110
|
+
function isDom2CompatibleVueComponent(file) {
|
|
111
|
+
if (!file || process.env.UNI_APP_X_DOM2 !== 'true') {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
// 这里按目录层级做结构化判断:
|
|
115
|
+
// uni_modules/插件名/utssdk/平台/index.vue
|
|
116
|
+
const normalizedFile = (0, utils_1.normalizePath)(file);
|
|
117
|
+
const relativeFile = (0, utils_1.normalizePath)(path_1.default.relative(process.env.UNI_INPUT_DIR || process.cwd(), normalizedFile));
|
|
118
|
+
const segments = relativeFile.split('/');
|
|
119
|
+
const uniModulesIndex = segments.lastIndexOf('uni_modules');
|
|
120
|
+
if (uniModulesIndex < 0) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
const pluginName = segments[uniModulesIndex + 1];
|
|
124
|
+
const utssdkDir = segments[uniModulesIndex + 2];
|
|
125
|
+
const platformDir = segments[uniModulesIndex + 3];
|
|
126
|
+
const entryFile = segments[uniModulesIndex + 4];
|
|
127
|
+
return (!!pluginName &&
|
|
128
|
+
utssdkDir === 'utssdk' &&
|
|
129
|
+
!!platformDir &&
|
|
130
|
+
entryFile === 'index.vue' &&
|
|
131
|
+
uniModulesIndex + 5 === segments.length);
|
|
132
|
+
}
|
|
133
|
+
function createDom2CompatibleComponentError(name, file) {
|
|
134
|
+
return new Error(messages_1.M['dom2.compatible.component']
|
|
135
|
+
.replace('{name}', `[${name}]`)
|
|
136
|
+
.replace('{file}', (0, utils_1.normalizePath)(path_1.default.relative(process.env.UNI_INPUT_DIR || process.cwd(), file))));
|
|
137
|
+
}
|
|
92
138
|
// 仅限 root/uni_modules/test-plugin | root/utssdk/test-plugin 格式
|
|
93
139
|
function resolveUTSModule(id, importer, includeUTSSDK = true) {
|
|
94
140
|
if (process.env.UNI_PLATFORM === 'app' ||
|
|
@@ -119,6 +165,36 @@ function resolveUTSModule(id, importer, includeUTSSDK = true) {
|
|
|
119
165
|
}
|
|
120
166
|
}
|
|
121
167
|
exports.resolveUTSModule = resolveUTSModule;
|
|
168
|
+
function hasUTSModulePlatformFile(pluginDir, platform) {
|
|
169
|
+
const utssdkDir = path_1.default.resolve(pluginDir, 'utssdk');
|
|
170
|
+
if (!fs_extra_1.default.existsSync(utssdkDir)) {
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
// 根目录 index.uts 视为当前平台可复用,和现有 uts 解析逻辑保持一致
|
|
174
|
+
if (fs_extra_1.default.existsSync(path_1.default.resolve(utssdkDir, 'index.uts'))) {
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
if (platform === 'app-harmony') {
|
|
178
|
+
if (fs_extra_1.default.existsSync(path_1.default.resolve(utssdkDir, 'app-js', 'index.uts')) ||
|
|
179
|
+
resolveUTSFile(path_1.default.resolve(utssdkDir, platform), [
|
|
180
|
+
'.uts',
|
|
181
|
+
'.vue',
|
|
182
|
+
'.uvue',
|
|
183
|
+
])) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
if (platform === 'app-android' || platform === 'app-ios') {
|
|
189
|
+
return !!resolveUTSFile(path_1.default.resolve(utssdkDir, platform), [
|
|
190
|
+
'.uts',
|
|
191
|
+
'.vue',
|
|
192
|
+
'.uvue',
|
|
193
|
+
]);
|
|
194
|
+
}
|
|
195
|
+
return !!resolveUTSFile(path_1.default.resolve(utssdkDir, platform));
|
|
196
|
+
}
|
|
197
|
+
exports.hasUTSModulePlatformFile = hasUTSModulePlatformFile;
|
|
122
198
|
function resolveUTSEncryptFile(pluginId, index) {
|
|
123
199
|
if (!pluginId) {
|
|
124
200
|
return;
|
|
@@ -335,12 +411,18 @@ function initUTSComponents(inputDir, platform) {
|
|
|
335
411
|
const kotlinPackage = parseKotlinPackageWithPluginId(pluginId, is_uni_modules_utssdk);
|
|
336
412
|
const swiftModule = parseSwiftModuleWithPluginId(pluginId, is_uni_modules_utssdk);
|
|
337
413
|
const swiftNamespace = parseSwiftPackageWithPluginId(pluginId, is_uni_modules_utssdk);
|
|
414
|
+
// App 平台依旧沿用 uts-proxy 机制,这里只补充兼容性标记,不改变现有导入方式。
|
|
338
415
|
easycomsObj[`^${name}$`] = {
|
|
339
416
|
source: isApp ? `${source}?uts-proxy` : source,
|
|
340
417
|
kotlinPackage: kotlinPackage,
|
|
341
418
|
swiftModule: swiftModule,
|
|
342
419
|
kotlinNamespace: kotlinPackage,
|
|
343
420
|
swiftNamespace: swiftNamespace,
|
|
421
|
+
// 仅记录命中的旧版兼容模式文件,真正报错放到 easycom / resolve 阶段,
|
|
422
|
+
// 这样既能复用已有扫描结果,也不会影响非 dom2 场景。
|
|
423
|
+
dom2IncompatibleFile: isDom2CompatibleVueComponent(file)
|
|
424
|
+
? (0, utils_1.normalizePath)(path_1.default.relative(inputDir, file))
|
|
425
|
+
: undefined,
|
|
344
426
|
};
|
|
345
427
|
}
|
|
346
428
|
});
|
|
@@ -353,6 +435,8 @@ function initUTSComponents(inputDir, platform) {
|
|
|
353
435
|
name: componentName,
|
|
354
436
|
pattern: new RegExp(name),
|
|
355
437
|
replacement: obj.source,
|
|
438
|
+
// 透传给 easycom 匹配逻辑,便于在模板中引用组件时直接给出更准确的错误信息。
|
|
439
|
+
dom2IncompatibleFile: obj.dom2IncompatibleFile,
|
|
356
440
|
});
|
|
357
441
|
utsComponents.set(componentName, {
|
|
358
442
|
source: obj.source,
|
|
@@ -510,7 +594,7 @@ async function parseUniExtApiAutoImports(uniExtApiAutoImports, extApis, parseSou
|
|
|
510
594
|
const filename = `uni_modules/${pluginId}/utssdk/interface.uts`;
|
|
511
595
|
const interfaceFileName = path_1.default.resolve(process.env.UNI_INPUT_DIR, filename);
|
|
512
596
|
if (fs_extra_1.default.existsSync(interfaceFileName)) {
|
|
513
|
-
const ids = await parseExportIdentifiers(interfaceFileName);
|
|
597
|
+
const ids = await parseExportIdentifiers(interfaceFileName, preprocess_1.preUVueJs);
|
|
514
598
|
ids
|
|
515
599
|
// 过滤掉 Uni
|
|
516
600
|
.filter((id) => id !== 'Uni')
|
package/dist/vite/autoImport.js
CHANGED
|
@@ -9,6 +9,7 @@ const uni_shared_1 = require("@dcloudio/uni-shared");
|
|
|
9
9
|
const uts_1 = require("../uts");
|
|
10
10
|
const workers_1 = require("../workers");
|
|
11
11
|
const utils_1 = require("../utils");
|
|
12
|
+
const x_1 = require("../x");
|
|
12
13
|
const uniWebLifeCyclePreset = {
|
|
13
14
|
from: '@dcloudio/uni-app',
|
|
14
15
|
imports: [
|
|
@@ -284,8 +285,10 @@ const vuePreset = {
|
|
|
284
285
|
function initAutoImportOptions(platform, { imports = [], ...userOptions }) {
|
|
285
286
|
rewriteAutoImportOnce();
|
|
286
287
|
const autoImport = [vuePreset];
|
|
287
|
-
//
|
|
288
|
-
if (platform === 'app-ios' ||
|
|
288
|
+
// JS 引擎的 App 平台统一走 vue 生命周期导入
|
|
289
|
+
if (platform === 'app-ios' ||
|
|
290
|
+
platform === 'app-harmony' ||
|
|
291
|
+
(0, x_1.isUniAppXAndroidJsEngine)(platform)) {
|
|
289
292
|
autoImport.push(uniAppLifeCyclePreset);
|
|
290
293
|
}
|
|
291
294
|
else if (platform === 'web') {
|
|
@@ -317,8 +320,8 @@ function initAutoImportOptions(platform, { imports = [], ...userOptions }) {
|
|
|
317
320
|
include: [/\.[u]?ts$/, /\.[u]?vue/],
|
|
318
321
|
exclude,
|
|
319
322
|
imports: imports.concat(
|
|
320
|
-
//
|
|
321
|
-
platform
|
|
323
|
+
// 旧版 Android x 仍由专有编译流程处理,Android Vapor 对齐 iOS 走通用自动导入
|
|
324
|
+
(0, x_1.isUniAppXAndroidNative)(platform) ? [] : autoImport),
|
|
322
325
|
dts: false,
|
|
323
326
|
};
|
|
324
327
|
}
|
package/dist/vite/cloud.js
CHANGED
|
@@ -15,6 +15,8 @@ const uni_modules_1 = require("./plugins/uts/uni_modules");
|
|
|
15
15
|
const utils_3 = require("./utils");
|
|
16
16
|
const json_1 = require("../json");
|
|
17
17
|
const workers_1 = require("../workers");
|
|
18
|
+
const dom2_1 = require("../dom2");
|
|
19
|
+
const x_1 = require("../x");
|
|
18
20
|
function createEncryptCssUrlReplacer(resolve) {
|
|
19
21
|
return async (url, importer) => {
|
|
20
22
|
if (url.startsWith('/') && !url.startsWith('//')) {
|
|
@@ -64,6 +66,7 @@ exports.uniEncryptUniModulesAssetsPlugin = uniEncryptUniModulesAssetsPlugin;
|
|
|
64
66
|
function uniEncryptUniModulesPlugin() {
|
|
65
67
|
let resolvedConfig;
|
|
66
68
|
const isMp = process.env.UNI_UTS_PLATFORM.startsWith('mp-');
|
|
69
|
+
const useUniAppXAndroidNative = (0, x_1.isUniAppXAndroidNative)();
|
|
67
70
|
const encryptModuleOutputFiles = [];
|
|
68
71
|
return {
|
|
69
72
|
name: 'uni:encrypt-uni-modules',
|
|
@@ -92,7 +95,7 @@ function uniEncryptUniModulesPlugin() {
|
|
|
92
95
|
resolvedConfig = config;
|
|
93
96
|
},
|
|
94
97
|
resolveId(id, importer) {
|
|
95
|
-
if (
|
|
98
|
+
if (!useUniAppXAndroidNative) {
|
|
96
99
|
if (resolvedConfig.assetsInclude((0, utils_1.cleanUrl)(id))) {
|
|
97
100
|
id = (0, utils_2.normalizePath)(id);
|
|
98
101
|
if (importer && (id.startsWith('./') || id.startsWith('../'))) {
|
|
@@ -106,7 +109,7 @@ function uniEncryptUniModulesPlugin() {
|
|
|
106
109
|
}
|
|
107
110
|
},
|
|
108
111
|
load(id) {
|
|
109
|
-
if (
|
|
112
|
+
if (!useUniAppXAndroidNative) {
|
|
110
113
|
if (resolvedConfig.assetsInclude((0, utils_1.cleanUrl)(id))) {
|
|
111
114
|
return {
|
|
112
115
|
code: `export default ${JSON.stringify(id.replace(/\0/g, ''))}`,
|
|
@@ -119,8 +122,8 @@ function uniEncryptUniModulesPlugin() {
|
|
|
119
122
|
Object.keys(bundle).forEach((fileName) => {
|
|
120
123
|
if (fileName.endsWith('.module.js')) {
|
|
121
124
|
const uniModuleId = path_1.default.basename(fileName).replace('.module.js', '');
|
|
122
|
-
//
|
|
123
|
-
if (
|
|
125
|
+
// 仅旧版 Android x 不需要 js
|
|
126
|
+
if (!useUniAppXAndroidNative) {
|
|
124
127
|
const newFileName = 'uni_modules/' +
|
|
125
128
|
fileName.replace('.module.js', '/index.module.js');
|
|
126
129
|
bundle[newFileName] = bundle[fileName];
|
|
@@ -171,12 +174,13 @@ function uniEncryptUniModulesPlugin() {
|
|
|
171
174
|
}
|
|
172
175
|
},
|
|
173
176
|
async writeBundle() {
|
|
174
|
-
if (
|
|
177
|
+
if (!useUniAppXAndroidNative) {
|
|
175
178
|
return;
|
|
176
179
|
}
|
|
177
180
|
const uniXKotlinCompiler = process.env.UNI_APP_X_TSC === 'true'
|
|
178
181
|
? (0, uts_1.resolveUTSCompiler)().createUniXKotlinCompilerOnce({
|
|
179
182
|
resolveWorkers: () => (0, workers_1.getWorkers)(),
|
|
183
|
+
sourceFileCallback: (0, dom2_1.initSourceFileCallback)(),
|
|
180
184
|
})
|
|
181
185
|
: null;
|
|
182
186
|
if (uniXKotlinCompiler) {
|
|
@@ -393,7 +397,10 @@ function compileCloudUniModuleWithTsc(platform, pluginDir) {
|
|
|
393
397
|
const isX = process.env.UNI_APP_X === 'true';
|
|
394
398
|
const resolveWorkers = () => (0, workers_1.getWorkers)();
|
|
395
399
|
return compileUniModuleWithTsc(platform, pluginDir, platform === 'app-android'
|
|
396
|
-
? createUniXKotlinCompilerOnce({
|
|
400
|
+
? createUniXKotlinCompilerOnce({
|
|
401
|
+
resolveWorkers,
|
|
402
|
+
sourceFileCallback: (0, dom2_1.initSourceFileCallback)(),
|
|
403
|
+
})
|
|
397
404
|
: platform === 'app-harmony'
|
|
398
405
|
? createUniXArkTSCompilerOnce({ resolveWorkers })
|
|
399
406
|
: createUniXSwiftCompilerOnce({ resolveWorkers }), {
|
package/dist/vite/extApi.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.uniUniModulesExtApiPlugin = void 0;
|
|
4
4
|
const uts_1 = require("../uts");
|
|
5
5
|
const resolve_1 = require("../resolve");
|
|
6
|
+
const x_1 = require("../x");
|
|
6
7
|
function uniUniModulesExtApiPlugin() {
|
|
7
8
|
return {
|
|
8
9
|
name: 'uni:uni-modules_ext-api',
|
|
@@ -21,7 +22,9 @@ function uniUniModulesExtApiPlugin() {
|
|
|
21
22
|
},
|
|
22
23
|
};
|
|
23
24
|
const build = {};
|
|
24
|
-
if (
|
|
25
|
+
if (process.env.UNI_UTS_PLATFORM === 'app-ios' ||
|
|
26
|
+
process.env.UNI_UTS_PLATFORM === 'app-harmony' ||
|
|
27
|
+
(0, x_1.isUniAppXAndroidJsEngine)()) {
|
|
25
28
|
build.rollupOptions = rollupOptions;
|
|
26
29
|
}
|
|
27
30
|
return {
|
|
@@ -14,8 +14,17 @@ const utils_2 = require("../../vue/utils");
|
|
|
14
14
|
const debugScoped = (0, debug_1.default)('uni:scoped');
|
|
15
15
|
const SCOPED_RE = /<style\s[^>]*scoped[^>]*>/i;
|
|
16
16
|
function addScoped(code) {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const blockRanges = [];
|
|
18
|
+
code.replace(/<(script|template)\b[^>]*>[\s\S]*?<\/\1\s*>/gi, (block, _tag, offset) => {
|
|
19
|
+
blockRanges.push({
|
|
20
|
+
start: offset,
|
|
21
|
+
end: offset + block.length,
|
|
22
|
+
});
|
|
23
|
+
return block;
|
|
24
|
+
});
|
|
25
|
+
return code.replace(/(<style\b[^><]*)>/gi, (str, $1, offset) => {
|
|
26
|
+
if ($1.includes('scoped') ||
|
|
27
|
+
blockRanges.some((range) => offset > range.start && offset < range.end)) {
|
|
19
28
|
return str;
|
|
20
29
|
}
|
|
21
30
|
return `${$1} scoped>`;
|
|
@@ -48,7 +48,9 @@ function uniEasycomPlugin(options) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
if (process.env.UNI_APP_X === 'true') {
|
|
51
|
-
if (
|
|
51
|
+
if (process.env.UNI_APP_X_DOM2 === 'true'
|
|
52
|
+
? (0, uni_shared_1.isDom2AppVueComponentTag)(name)
|
|
53
|
+
: (0, uni_shared_1.isAppUVueBuiltInEasyComponent)(name)) {
|
|
52
54
|
// 内置easycom组件不传入self参数
|
|
53
55
|
return str.replace(', true)', ')');
|
|
54
56
|
}
|