69 lines
3.0 KiB
JavaScript
69 lines
3.0 KiB
JavaScript
"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;
|