EASYAIuniappNewUI/node_modules/@dcloudio/uni-quickapp-webview/dist/uni.compiler.js
2025-02-08 18:50:38 +08:00

170 lines
5.1 KiB
JavaScript

'use strict';
var uniCliShared = require('@dcloudio/uni-cli-shared');
var initMiniProgramPlugin = require('@dcloudio/uni-mp-vite');
var path = require('path');
var shared = require('@vue/shared');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var initMiniProgramPlugin__default = /*#__PURE__*/_interopDefault(initMiniProgramPlugin);
var path__default = /*#__PURE__*/_interopDefault(path);
var compilerOptions$1 = {
target: "es6",
module: "commonjs"
};
var source = {
compilerOptions: compilerOptions$1
};
const properties = ['name', 'versionName', 'versionCode'];
function formatAppJson(_appJson, manifestJson, _pagesJson) {
const appJson = _appJson;
// 华为IDE V3.0.2+ 需要此属性,否则无法导入
appJson.appType = 'webapp';
appJson.minPlatformVersion = 1070;
properties.forEach((name) => {
if (shared.hasOwn(manifestJson, name)) {
appJson[name] = manifestJson[name];
}
});
if (!appJson.name) {
const inputDir = process.env.UNI_INPUT_DIR;
let projectname = path__default.default.basename(inputDir);
if (projectname === 'src') {
projectname = path__default.default.basename(path__default.default.dirname(inputDir));
}
appJson.name = projectname;
}
if (!appJson.package) {
appJson.package = appJson.name;
}
if (manifestJson['quickapp-webview']) {
shared.extend(appJson, manifestJson['quickapp-webview']);
}
if (process.env.UNI_SUB_PLATFORM &&
manifestJson[process.env.UNI_SUB_PLATFORM]) {
shared.extend(appJson, manifestJson[process.env.UNI_SUB_PLATFORM]);
}
if (!appJson.package) {
console.warn('manifest.json->quickapp-webview 缺少 package 配置');
}
if (!appJson.icon) {
console.warn('manifest.json->quickapp-webview 缺少 icon 配置');
}
}
const compilerOptions = {
nodeTransforms: [uniCliShared.transformRef, uniCliShared.transformComponentLink],
};
const miniProgram = {
class: {
array: true,
},
slot: {
fallbackContent: false,
dynamicSlotNames: true,
},
directive: 'qa:',
checkPropName(name, prop) {
// 快应用不允许使用 key 属性,应该还有很多其他保留字,目前先简单处理
// ERROR: Unexpected JavaScript keyword as attribute name: 'key', please change it.
if (name === 'key') {
return false;
}
if (name === 'bind' &&
prop.type === /*NodeTypes.DIRECTIVE*/ 7 &&
prop.arg) {
if (prop.arg.type === /*NodeTypes.SIMPLE_EXPRESSION*/ 4) {
if (prop.arg.content === 'key') {
return false;
}
}
}
return true;
},
};
const projectConfigFilename = 'jsconfig.json';
const options = {
cdn: process.env.UNI_SUB_PLATFORM === 'quickapp-webview-huawei' ? 200 : 201,
vite: {
inject: {
uni: [path__default.default.resolve(__dirname, 'uni.api.esm.js'), 'default'],
},
alias: {
'uni-mp-runtime': path__default.default.resolve(__dirname, 'uni.mp.esm.js'),
},
copyOptions: {},
},
global: 'qa',
app: {
darkmode: false,
subpackages: true,
usingComponents: true,
},
json: {
formatAppJson,
},
template: Object.assign(Object.assign({}, miniProgram), { filter: {
extname: '.qjs',
lang: 'qjs',
generate(filter, filename) {
if (filename) {
return `<qjs src="${filename}.qjs" module="${filter.name}"/>`;
}
return `<qjs module="${filter.name}">
${filter.code}
</qjs>`;
},
}, extname: '.qxml', compilerOptions }),
style: {
extname: '.css',
},
project: {
filename: projectConfigFilename,
config: [],
source,
},
};
let quickappConfigJson = false;
const uniQuickappWebviewPlugin = {
name: 'uni:quickapp-webview',
config() {
return {
define: {
__VUE_CREATED_DEFERRED__: true,
},
build: {
// css 中不支持引用本地资源
assetsInlineLimit: uniCliShared.ASSETS_INLINE_LIMIT,
},
};
},
generateBundle(_, bundle) {
if (process.env.UNI_SUB_PLATFORM === 'quickapp-webview-huawei') {
if (quickappConfigJson) {
return;
}
quickappConfigJson = true;
bundle['quickapp.config.json'] = {
type: 'asset',
fileName: 'quickapp.config.json',
originalFileName: 'quickapp.config.json',
name: 'quickapp.config.json',
source: JSON.stringify({
quickappRoot: './',
packOptions: {
ignore: [],
},
}),
needsCodeReference: false,
};
}
},
};
var index = [uniQuickappWebviewPlugin, ...initMiniProgramPlugin__default.default(options)];
module.exports = index;