更新
This commit is contained in:
+68
@@ -0,0 +1,68 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.createResolve = exports.customResolver = void 0;
|
||||
const path_1 = __importDefault(require("path"));
|
||||
const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared");
|
||||
function resolveUTSModuleProxyFile(id, importer) {
|
||||
const file = (0, uni_cli_shared_1.resolveUTSAppModule)(process.env.UNI_UTS_PLATFORM, id, importer);
|
||||
if (file) {
|
||||
// app-js 会返回完整路径,不需要 uts-proxy
|
||||
if (file.endsWith('.uts')) {
|
||||
return file;
|
||||
}
|
||||
return file + '?uts-proxy';
|
||||
}
|
||||
}
|
||||
const customResolver = (updatedId, importer) => {
|
||||
updatedId = updatedId.split('?')[0];
|
||||
const utsImporter = importer
|
||||
? path_1.default.dirname(importer)
|
||||
: process.env.UNI_INPUT_DIR;
|
||||
const utsModuleFile = process.env.UNI_PLATFORM === 'app' ||
|
||||
process.env.UNI_PLATFORM === 'app-harmony'
|
||||
? resolveUTSModuleProxyFile(updatedId, utsImporter)
|
||||
: (0, uni_cli_shared_1.resolveUTSModule)(updatedId, utsImporter);
|
||||
if (utsModuleFile) {
|
||||
return uni_cli_shared_1.isWindows ? (0, uni_cli_shared_1.normalizePath)(utsModuleFile) : utsModuleFile;
|
||||
}
|
||||
const resolveId = (0, uni_cli_shared_1.resolveEncryptUniModule)((0, uni_cli_shared_1.normalizePath)(updatedId), process.env.UNI_UTS_PLATFORM, process.env.UNI_APP_X === 'true');
|
||||
if (resolveId) {
|
||||
return resolveId;
|
||||
}
|
||||
if (uni_cli_shared_1.isWindows) {
|
||||
return (0, uni_cli_shared_1.normalizePath)((0, uni_cli_shared_1.requireResolve)(updatedId, importer || process.env.UNI_INPUT_DIR));
|
||||
}
|
||||
return (0, uni_cli_shared_1.requireResolve)(updatedId, importer || process.env.UNI_INPUT_DIR);
|
||||
};
|
||||
exports.customResolver = customResolver;
|
||||
function createResolve(options, _config) {
|
||||
const alias = [];
|
||||
if ((0, uni_cli_shared_1.isNormalCompileTarget)()) {
|
||||
// 加密组件内部使用的 vue export helper,需要重新映射回来
|
||||
alias.push({
|
||||
find: 'plugin-vue:export-helper',
|
||||
replacement: '\0plugin-vue:export-helper',
|
||||
});
|
||||
}
|
||||
return {
|
||||
// 必须使用alias解析,插件定制的resolveId,不会被应用到css等预处理器中
|
||||
alias: [
|
||||
// because @rollup/plugin-alias' type doesn't allow function
|
||||
// replacement, but its implementation does work with function values.
|
||||
{
|
||||
find: /^(~@|@)\/(.*)/,
|
||||
replacement(_str, _$1, $2) {
|
||||
return (0, uni_cli_shared_1.normalizePath)(path_1.default.resolve(options.inputDir, $2));
|
||||
},
|
||||
customResolver: exports.customResolver,
|
||||
},
|
||||
...alias,
|
||||
],
|
||||
extensions: process.env.UNI_APP_X === 'true' ? uni_cli_shared_1.uni_app_x_extensions : uni_cli_shared_1.extensions,
|
||||
preserveSymlinks: true,
|
||||
};
|
||||
}
|
||||
exports.createResolve = createResolve;
|
||||
Reference in New Issue
Block a user