You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

209 lines
5.6 KiB

'use strict';
var initMiniProgramPlugin = require('@dcloudio/uni-mp-vite');
var path = require('path');
var uniCliShared = require('@dcloudio/uni-cli-shared');
var uniMpCompiler = require('@dcloudio/uni-mp-compiler');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var initMiniProgramPlugin__default = /*#__PURE__*/_interopDefault(initMiniProgramPlugin);
var path__default = /*#__PURE__*/_interopDefault(path);
var appid = "";
var host = "baiduboxapp";
var projectname = "";
var setting = {
autoAudits: false,
urlCheck: false
};
var source = {
appid: appid,
"compilation-args": {
common: {
babelSetting: {
ignore: [
]
},
enhance: true,
ignorePrefixCss: false
},
selected: -3
},
host: host,
projectname: projectname,
setting: setting
};
const transformFor = (node, context) => {
if (!uniMpCompiler.isForElementNode(node)) {
return;
}
const { vFor, props } = node;
let sourceCode = vFor.valueAlias + ' in ' + vFor.sourceAlias;
const keyProp = uniMpCompiler.findProp(node, 'key', true);
if (keyProp) {
const { exp } = keyProp;
if (exp) {
const key = uniMpCompiler.rewriteExpression(exp, context).content;
sourceCode = sourceCode + ' trackBy ' + key;
props.splice(props.indexOf(keyProp), 1);
}
}
vFor.valueAlias = '';
vFor.sourceCode = sourceCode;
};
/**
* 百度小程序的自定义组件,不支持动态事件绑定
*/
const transformOn = uniCliShared.createTransformOn(uniMpCompiler.transformOn);
/**
* 百度小程序的自定义组件,不支持动态事件绑定,故 v-model 也需要调整
*/
const transformModel = uniCliShared.createTransformModel(uniMpCompiler.transformModel);
const customElements = [
'animation-video',
'animation-view',
'ar-camera',
'rtc-room',
'rtc-room-item',
'tabs',
'tab-item',
'follow-swan',
'login',
'inline-payment-panel',
'talos-linear-gradient',
'talos-rc-view',
'talos-nested-scroll-view',
'talos-nested-scroll-top-container',
'talos-nested-scroll-bottom-container',
'talos-waterfall-view',
'talos-waterfall-item',
'talos-waterfall-header',
'talos-waterfall-footer',
'talos-pull-refresh',
'talos-control-container',
'talos-na-refresh-control',
'talos-modal',
'talos-svg',
];
const nodeTransforms = [uniCliShared.transformRef, transformFor, uniCliShared.transformMatchMedia];
const directiveTransforms = {
on: transformOn,
model: transformModel,
};
const COMPONENTS_DIR = 'swancomponents';
const miniProgram = {
class: {
array: true,
},
slot: {
fallbackContent: true,
// https://github.com/baidu/san/discussions/601
dynamicSlotNames: false,
},
directive: 's-',
lazyElement: {
editor: [
{
name: 'on',
arg: ['ready'],
},
],
'animation-view': true,
},
component: {
dir: COMPONENTS_DIR,
},
};
const compilerOptions = {
nodeTransforms,
directiveTransforms,
};
const projectConfigFilename = 'project.swan.json';
const options = {
cdn: 3,
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: {
assets: [COMPONENTS_DIR],
targets: [
{
src: ['ext.json'],
get dest() {
return process.env.UNI_OUTPUT_DIR;
},
},
],
},
},
global: 'swan',
app: {
darkmode: false,
subpackages: true,
usingComponents: true,
},
project: {
filename: projectConfigFilename,
config: ['project.swan.json'],
source,
normalize(projectJson) {
var _a;
const miniprogram = (_a = projectJson.condition) === null || _a === void 0 ? void 0 : _a.miniprogram;
if (miniprogram &&
Array.isArray(miniprogram.list) &&
miniprogram.list.length) {
projectJson['compilation-args'].options =
miniprogram.list.map((item) => {
return {
id: item.id,
text: item.name,
extra: {
index: item.pathName,
query: item.query,
},
};
});
delete projectJson.condition;
}
return projectJson;
},
},
template: Object.assign(Object.assign({}, miniProgram), { customElements, filter: {
extname: '.sjs',
lang: 'sjs',
generate(filter, filename) {
if (filename) {
return `<import-sjs src="${filename}.sjs" module="${filter.name}"/>`;
}
return `<import-sjs module="${filter.name}">
${filter.code}
</import-sjs>`;
},
}, extname: '.swan', compilerOptions }),
style: {
extname: '.css',
},
};
const uniMiniProgramBaiduPlugin = {
name: 'uni:mp-baidu',
config() {
return {
define: {
__VUE_CREATED_DEFERRED__: false,
},
};
},
};
var index = [uniMiniProgramBaiduPlugin, ...initMiniProgramPlugin__default.default(options)];
module.exports = index;