"use strict";
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
};
|
Object.defineProperty(exports, "__esModule", { value: true });
|
exports.formatInstallHBuilderXPluginTips = exports.moduleAliasFormatter = exports.installHBuilderXPlugin = exports.initModuleAlias = void 0;
|
const path_1 = __importDefault(require("path"));
|
const module_alias_1 = __importDefault(require("module-alias"));
|
const env_1 = require("./env");
|
const hbxPlugins = {
|
// typescript: 'compile-typescript/node_modules/typescript',
|
less: 'compile-less/node_modules/less',
|
sass: 'compile-dart-sass/node_modules/sass',
|
stylus: 'compile-stylus/node_modules/stylus',
|
pug: 'compile-pug-cli/node_modules/pug',
|
};
|
function initModuleAlias() {
|
const compilerSfcPath = require.resolve('@vue/compiler-sfc');
|
const serverRendererPath = require.resolve('@vue/server-renderer');
|
module_alias_1.default.addAliases({
|
'@vue/shared': require.resolve('@vue/shared'),
|
'@vue/shared/dist/shared.esm-bundler.js': require.resolve('@vue/shared/dist/shared.esm-bundler.js'),
|
'@vue/compiler-dom': require.resolve('@vue/compiler-dom'),
|
'@vue/compiler-sfc': compilerSfcPath,
|
'@vue/server-renderer': serverRendererPath,
|
'vue/compiler-sfc': compilerSfcPath,
|
'vue/server-renderer': serverRendererPath,
|
});
|
if (process.env.VITEST) {
|
module_alias_1.default.addAliases({
|
vue: '@dcloudio/uni-h5-vue',
|
});
|
}
|
if ((0, env_1.isInHBuilderX)()) {
|
Object.keys(hbxPlugins).forEach((name) => {
|
module_alias_1.default.addAlias(name, path_1.default.resolve(process.env.UNI_HBUILDERX_PLUGINS, hbxPlugins[name]));
|
});
|
}
|
}
|
exports.initModuleAlias = initModuleAlias;
|
function supportAutoInstallPlugin() {
|
return !!process.env.HX_Version;
|
}
|
function installHBuilderXPlugin(plugin) {
|
if (!supportAutoInstallPlugin()) {
|
return;
|
}
|
return console.error(`%HXRunUniAPPPluginName%${plugin}%HXRunUniAPPPluginName%`);
|
}
|
exports.installHBuilderXPlugin = installHBuilderXPlugin;
|
exports.moduleAliasFormatter = {
|
test(msg) {
|
return msg.includes('Preprocessor dependency');
|
},
|
format(msg) {
|
let lang = '';
|
let preprocessor = '';
|
if (msg.includes(`"sass"`)) {
|
lang = 'sass';
|
preprocessor = 'compile-dart-sass';
|
}
|
else if (msg.includes(`"less"`)) {
|
lang = 'less';
|
preprocessor = 'compile-less';
|
}
|
else if (msg.includes('"stylus"')) {
|
lang = 'stylus';
|
preprocessor = 'compile-stylus';
|
}
|
if (lang) {
|
installHBuilderXPlugin(preprocessor);
|
return formatInstallHBuilderXPluginTips(lang, preprocessor);
|
}
|
return msg;
|
},
|
};
|
function formatInstallHBuilderXPluginTips(lang, preprocessor) {
|
return `预编译器错误:代码使用了${lang}语言,但未安装相应的编译器插件,${supportAutoInstallPlugin() ? '正在从' : '请前往'}插件市场安装该插件:
|
https://ext.dcloud.net.cn/plugin?name=${preprocessor}`;
|
}
|
exports.formatInstallHBuilderXPluginTips = formatInstallHBuilderXPluginTips;
|