一:?jiǎn)栴}描述:
????????????????支付寶小程序在使用map組件時(shí),使用高級(jí)渲染需要使用xml組件,在? ????????????????manifest.json下配置include字段,編譯完沒有該字段,不生效。
? ? ? ? ? ? ? ? ? ? ? ?
????????????????
? ? ? ? ? ? ? ? 這里是支付寶文檔:支付寶官方文檔
????????????????? 布局的 XML 文件默認(rèn)會(huì)被 IDE 打包工具忽略,需要在根目錄 mini.project.json ?????????????????配置規(guī)則里將 xml 打到小程序中。? ? ? ? ? ? ? ? ? {
????????????????????"include":["*/.xml"] // 配置包含 xml
???????????????????}原因:社區(qū)文公開發(fā)人員后,可能是由于hbuilderX內(nèi)配置文件未添加該項(xiàng)所致。
二:沒解決之前每次編譯后是這樣的:
解決之后就自動(dòng)添加了?
???????????????????{
????????????????????"include":["*/.xml"] // 配置包含 xml
???????????????????}這個(gè)配置項(xiàng),看圖:
三:解決方案如下:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1):在?你的根目錄/node_modules/@dcloudio/webpack-uni-pages-loader/lib/platforms/mp-alipay.js中替換(將文件里面的代碼全部替換掉)如下代碼:? ? ? ? ? ? ?
const fs = require('fs') const path = require('path') const { parsePages, getPlatformProject } = require('@dcloudio/uni-cli-shared') const { updateAppJsonUsingComponents } = require('@dcloudio/uni-cli-shared/lib/cache') const { hasOwn, parseStyle, parseTabBar, NON_APP_JSON_KEYS } = require('../util') function defaultCopy (name, value, json) { json[name] = value } const pagesJson2AppJson = { globalStyle: function (name, value, json) { json.window = parseStyle(value) if (json.window.usingComponents) { json.usingComponents = json.window.usingComponents delete json.window.usingComponents } }, tabBar: function (name, value, json) { json.tabBar = parseTabBar(value) }, preloadRule: defaultCopy } function copyToJson (json, fromJson, options) { Object.keys(options).forEach(name => { if (hasOwn(fromJson, name)) { options[name](name, fromJson[name], json) } }) } const projectKeys = ['component2', 'enableAppxNg', 'include'] module.exports = function (pagesJson, manifestJson) { const app = { pages: [], subPackages: [] } const subPackages = {} parsePages(pagesJson, function (page) { app.pages.push(page.path) }, function (root, page, subPackage) { if (!subPackages[root]) { subPackages[root] = { root, pages: [] } Object.keys(subPackage).forEach(name => { if (['root', 'pages'].indexOf(name) === -1) { subPackages[root][name] = subPackage[name] } }) } subPackages[root].pages.push(page.path) }) Object.keys(subPackages).forEach(root => { app.subPackages.push(subPackages[root]) }) copyToJson(app, pagesJson, pagesJson2AppJson) const platformJson = manifestJson['mp-alipay'] || {} Object.keys(platformJson).forEach(key => { if (!projectKeys.includes(key) && !NON_APP_JSON_KEYS.includes(key)) { // usingComponents 是編譯模式開關(guān),需要過濾,不能拷貝到 app app[key] = platformJson[key] } }) if (app.usingComponents) { updateAppJsonUsingComponents(app.usingComponents) } const projectName = getPlatformProject() let project = {} const projectPath = path.resolve(process.env.UNI_INPUT_DIR, projectName) if (fs.existsSync(projectPath)) { project = require(projectPath) } else { if (platformJson.appid) { project.appid = platformJson.appid } project.component2 = hasOwn(platformJson, 'component2') ? platformJson.component2 : true project.enableAppxNg = hasOwn(platformJson, 'enableAppxNg') ? platformJson.enableAppxNg : true if (hasOwn(platformJson, 'include')) { project.include = platformJson.include } } return [{ name: 'app', content: app }, { name: 'mini.project', content: project }] }
? ? ? ? ? ? ? ? ? ? ? ? ? ??
添加后的代碼和之前沒什么兩樣,就是多了個(gè)if判斷,直接上圖:????????
四:解決完之后:
????????????????
文章來源:http://www.zghlxwxcb.cn/news/detail-730292.html
?這里是用uniapp嵌套支付寶小程序,在vscode里面改完之后,IDE就會(huì)自動(dòng)編譯成上圖的代碼,也就是成功之后的代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-730292.html
到了這里,關(guān)于uniapp的manifest.json配置后,支付寶小程序include不生效,map高級(jí)渲染的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!