'use strict';
var uniCliShared = require('@dcloudio/uni-cli-shared');
var initMiniProgramPlugin = require('@dcloudio/uni-mp-vite');
var compilerCore = require('@vue/compiler-core');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var initMiniProgramPlugin__default = /*#__PURE__*/_interopDefault(initMiniProgramPlugin);
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
var uniad_app_json = function (appJson) {
if (!appJson.plugins) {
appJson.plugins = {};
}
if (!appJson.plugins['uni-ad']) {
appJson.plugins['uni-ad'] = {
version: '1.3.0',
provider: 'wxf72d316417b6767f',
};
}
if (!appJson.plugins['coral-adv']) {
appJson.plugins['coral-adv'] = {
version: '1.0.25',
provider: 'wx0e203209e27b1e66',
};
}
if (!appJson.usingComponents) {
appJson.usingComponents = {};
}
if (!appJson.usingComponents['uniad-plugin']) {
appJson.usingComponents['uniad-plugin'] = 'plugin://uni-ad/ad';
}
};
var uniadAppJson = /*@__PURE__*/getDefaultExportFromCjs(uniad_app_json);
const AD_COMPONENTS = [
'uniad',
'ad-rewarded-video',
'ad-fullscreen-video',
'ad-interstitial',
];
let appJsonUniadFlag = false;
function transformAd(node, context) {
if (!uniCliShared.isElementNode(node)) {
return;
}
const adpidProp = compilerCore.findProp(node, 'adpid');
if (node.tag === 'ad' && adpidProp) {
node.tag = 'uniad';
node.tagType = compilerCore.ElementTypes.COMPONENT;
}
if (appJsonUniadFlag) {
return;
}
if (AD_COMPONENTS.indexOf(node.tag) > -1) {
appJsonUniadFlag = true;
process.env.HAS_WXAD = '1';
uniadAppJson(uniCliShared.findJsonFile('app'));
}
}
var description = "项目配置文件。";
var packOptions = {
ignore: [
]
};
var setting = {
urlCheck: false,
es6: true,
postcss: false,
minified: false,
newFeature: true,
bigPackageSizeSupport: true
};
var compileType = "miniprogram";
var libVersion = "";
var appid = "touristappid";
var projectname = "";
var condition = {
search: {
current: -1,
list: [
]
},
conversation: {
current: -1,
list: [
]
},
game: {
current: -1,
list: [
]
},
miniprogram: {
current: -1,
list: [
]
}
};
var source = {
description: description,
packOptions: packOptions,
setting: setting,
compileType: compileType,
libVersion: libVersion,
appid: appid,
projectname: projectname,
condition: condition
};
const customElements = [
'page-container',
'page-meta',
'navigation-bar',
'match-media',
'ad-custom',
'share-element',
'channel-live',
'channel-video',
'voip-room',
'root-portal',
'subscribe',
// 手势组件
'tap-gesture-handler',
'double-tap-gesture-handler',
'scale-gesture-handler',
'force-press-gesture-handler',
'pan-gesture-handler',
'vertical-drag-gesture-handler',
'horizontal-drag-gesture-handler',
'long-press-gesture-handler',
//其他
'draggable-sheet',
'grid-builder',
'grid-view',
'list-builder',
'list-view',
'nested-scroll-body',
'nested-scroll-header',
'open-container',
'share-element',
'snapshot',
// 'span', // todo: 临时移除 span 的支持,后续判断 skyline 环境进行区分 ask 190418
'sticky-header',
'sticky-section',
'store-product',
'store-home',
];
const nodeTransforms = [
uniCliShared.transformRef,
uniCliShared.transformComponentLink,
transformAd,
];
if (process.env.UNI_APP_X === 'true') {
nodeTransforms.push(uniCliShared.transformMPBuiltInTag, uniCliShared.transformDirection);
}
const compilerOptions = {
nodeTransforms,
};
const COMPONENTS_DIR = 'wxcomponents';
function getMiniProgramOptions(isX) {
return {
class: {
array: true,
},
slot: {
fallbackContent: false,
dynamicSlotNames: true,
},
event: {
key: true,
},
directive: 'wx:',
lazyElement: {
canvas: [
{ name: 'bind', arg: ['canvas-id', 'id'] },
{
name: 'on',
arg: ['touchstart', 'touchmove', 'touchcancel', 'touchend'],
},
],
editor: [
{
name: 'on',
arg: ['ready'],
},
],
'scroll-view': [
{
name: 'on',
arg: ['dragstart', 'dragging', 'dragend'],
},
],
// iOS 平台需要延迟
input: [{ name: 'bind', arg: ['type'] }],
textarea: [{ name: 'on', arg: ['input'] }],
},
component: {
':host': true,
dir: COMPONENTS_DIR,
vShow: uniCliShared.COMPONENT_CUSTOM_HIDDEN,
// 在 x 里边,已经把 u-p 补充了 || '' 来规避,理论上非 x 也可以,目前为了兼容性,暂时不开启
getPropertySync: isX, // 为了避免 Setting data field "uP" to undefined is invalid 警告
normalizeName: (name) => name.startsWith('wx-') ? name.replace('wx-', 'weixin-') : name,
},
filter: {
lang: 'wxs',
setStyle: true,
},
};
}
const projectConfigFilename = 'project.config.json';
const miniProgram = getMiniProgramOptions(process.env.UNI_APP_X === 'true');
const options = {
cdn: 1,
vite: {
inject: {
uni: [initMiniProgramPlugin.resolveMiniProgramRuntime(__dirname, 'uni.api.esm.js'), 'default'],
wx: [initMiniProgramPlugin.resolveMiniProgramRuntime(__dirname, 'uni.api.esm.js'), 'wx'],
},
alias: {
'uni-mp-runtime': initMiniProgramPlugin.resolveMiniProgramRuntime(__dirname, 'uni.mp.esm.js'),
},
copyOptions: {
assets: [COMPONENTS_DIR],
targets: [
...(process.env.UNI_MP_PLUGIN ? [uniCliShared.copyMiniProgramPluginJson] : []),
{
src: [
'sitemap.json',
'ext.json',
'custom-tab-bar',
'functional-pages',
'project.private.config.json',
projectConfigFilename,
],
get dest() {
return process.env.UNI_OUTPUT_DIR;
},
},
...uniCliShared.copyMiniProgramThemeJson(),
],
},
},
global: 'wx',
app: {
darkmode: true,
subpackages: true,
plugins: true,
usingComponents: true,
},
project: {
filename: projectConfigFilename,
config: ['project.wx.json', 'project.config.json'],
source,
},
template: Object.assign(Object.assign({}, miniProgram), { customElements, filter: Object.assign(Object.assign({}, miniProgram.filter), { lang: 'wxs', extname: '.wxs', generate(filter, filename) {
if (filename) {
return ``;
}
return `
${filter.code}
`;
} }), extname: '.wxml', compilerOptions }),
style: {
extname: '.wxss',
},
};
const uniMiniProgramWeixinPlugin = {
name: 'uni:mp-weixin',
config() {
return {
define: {
__VUE_CREATED_DEFERRED__: false,
},
build: {
// css 中不支持引用本地资源
assetsInlineLimit: uniCliShared.ASSETS_INLINE_LIMIT,
},
};
},
};
var index = [uniMiniProgramWeixinPlugin, ...initMiniProgramPlugin__default.default(options)];
module.exports = index;