'use strict'; var fs = require('fs-extra'); var path = require('path'); var uniCliShared = require('@dcloudio/uni-cli-shared'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var fs__default = /*#__PURE__*/_interopDefault(fs); var path__default = /*#__PURE__*/_interopDefault(path); const uniConsoleRuntimePlugin = () => { return { name: 'uni:console:runtime', config() { const isX = process.env.UNI_APP_X === 'true'; const isProd = process.env.NODE_ENV === 'production'; let keepOriginal = true; if (process.env.UNI_PLATFORM == 'mp-harmony' || process.env.UNI_PLATFORM === 'app-harmony') { keepOriginal = false; } const webviewEvalJsCode = isX && process.env.UNI_UTS_PLATFORM === 'app-android' ? fs__default.default.readFileSync(path__default.default.join(__dirname, '../dist/__uniwebview.js'), 'utf-8') : ''; return { define: { 'process.env.UNI_CONSOLE_KEEP_ORIGINAL': process.env .UNI_CONSOLE_KEEP_ORIGINAL ? process.env.UNI_CONSOLE_KEEP_ORIGINAL === 'true' : keepOriginal, 'process.env.UNI_SOCKET_HOSTS': JSON.stringify(isProd ? '' : process.env.UNI_SOCKET_HOSTS), 'process.env.UNI_SOCKET_PORT': JSON.stringify(isProd ? '' : process.env.UNI_SOCKET_PORT), 'process.env.UNI_SOCKET_ID': JSON.stringify(isProd ? '' : process.env.UNI_SOCKET_ID), 'process.env.UNI_CONSOLE_WEBVIEW_EVAL_JS_CODE': JSON.stringify(webviewEvalJsCode), }, }; }, }; }; var index = () => { return [ uniConsoleRuntimePlugin(), uniCliShared.defineUniMainJsPlugin((opts) => { let hasRuntimeSocket = uniCliShared.isEnableConsole(); const isX = process.env.UNI_APP_X === 'true'; // 基座类型为custom时,不启用运行时socket // 需要判断自定义基座是否包含socket模块,有的话才可以启用 if (isX && process.env.UNI_PLATFORM === 'app') { if (process.env.HX_USE_BASE_TYPE === 'custom') { hasRuntimeSocket = false; } } let uniConsolePath = uniCliShared.resolveBuiltIn(path__default.default.join('@dcloudio/uni-console', `dist/${(process.env.UNI_PLATFORM || '').startsWith('mp-') ? 'mp' : 'index'}.esm.js`)); if (isX) { if (process.env.UNI_UTS_PLATFORM === 'app-android') { uniConsolePath = uniCliShared.resolveBuiltIn(path__default.default.join('@dcloudio/uni-console', 'src/runtime/app/index.ts')); } else if (process.env.UNI_UTS_PLATFORM === 'app-ios') { uniConsolePath = uniCliShared.resolveBuiltIn(path__default.default.join('@dcloudio/uni-console', 'dist/app.esm.js')); } } else { if (process.env.UNI_PLATFORM === 'app-harmony') { uniConsolePath = uniCliShared.resolveBuiltIn(path__default.default.join('@dcloudio/uni-console', 'dist/harmony.jsvm.esm.js')); } } return { name: 'uni:console-main-js', enforce: // android需要提前,不然拿到的code是解析后的仅保留import语句的 process.env.UNI_UTS_PLATFORM === 'app-android' ? 'pre' : 'post', transform(code, id) { if (!hasRuntimeSocket) { return; } if (!opts.filter(id)) { return; } return { // 采用绝对路径引入,此时,tsc失效,代码里需要自己处理好各种类型问题 code: `import '${uniCliShared.normalizePath(uniConsolePath)}';${code}`, map: null, }; }, }; }), ]; }; module.exports = index;