Files
fitness_walk_nwnu/node_modules/@dcloudio/webpack-uni-mp-loader/lib/plugin/compile-to-template.bak
T
2026-09-08 20:28:54 +08:00

72 lines
1.4 KiB
Plaintext

const {
hyphenate,
getPlatformCompiler
} = require('@dcloudio/uni-cli-shared')
const SRC_REGEX = /src="([^"]+)"/g
module.exports = function compile (source, options) {
const {
compileToWxml,
compileToTemplate
} = getPlatformCompiler()
if (typeof compileToWxml === 'function') {
const components = {
'slots': {
src: '/common/slots.wxml',
name: 'slots'
}
}
Object.keys(options.imports).forEach(name => {
if (name !== '_slots_') {
components[hyphenate(name)] = options.imports[name]
}
})
const compiled = options.compiled
const {
code,
// compiled,
slots: mpvueSlots,
importCode
} = compileToWxml(compiled, {
name: options.name,
components,
moduleId: options.scopeId || ('M' + options.name)
})
const deps = []
if (importCode) {
let match
/* eslint-disable no-cond-assign */
while (match = SRC_REGEX.exec(importCode)) {
deps.push(match[1])
}
}
const slots = Object.keys(mpvueSlots).map(slotName => {
const slot = mpvueSlots[slotName]
return {
name: slot.name,
slotName,
body: slot.code,
dependencies: deps
}
})
return {
body: code,
slots,
deps,
mpvue: true
}
}
return compileToTemplate(source, Object.assign(options, {
htmlParse: {
templateName: 'octoParse'
}
}))
}