智能照明系统APP-本地串口
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.
 
 
 
 
 
 
LightingSystemApp-serial/.svn/pristine/0d/0de326ab3678c8a0bb42e5222c7...

82 lines
2.2 KiB

const {
getPlatformFilterTag,
normalizeNodeModules,
jsPreprocessOptions
} = require('@dcloudio/uni-cli-shared/lib/platform')
const preprocessor = require('@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/preprocess')
const FILTER_TAG = getPlatformFilterTag()
function preprocessBlock(block) {
if (block.content) {
block.content = preprocessor.preprocess(block.content, jsPreprocessOptions.context, {
type: jsPreprocessOptions.type
}).trim()
}
return block
}
module.exports = function parseCustomBlocks(descriptor, options) {
if (
process.env.UNI_PLATFORM &&
process.env.UNI_PLATFORM.indexOf('mp-') === 0 &&
!descriptor.script
) { // 临时方案:小程序平台,无script节点时,自动补充(激活componentSet,否则没法正常追加入口js,后续优化)
descriptor.script = {
type: 'script',
content: 'export default {}',
start: 100,
attrs: {},
end: 125
}
}
if (!descriptor.template || !FILTER_TAG || options.isAppNVue) {
// delete customBlocks
descriptor.customBlocks.length = 0
return descriptor
}
const modules = Object.create(null)
descriptor.customBlocks = descriptor.customBlocks.filter(block => {
if (
block.attrs.module &&
(
block.type === FILTER_TAG ||
block.attrs.lang === FILTER_TAG
)
) {
modules[block.attrs.module] = preprocessBlock(block)
return true
}
if ( // renderjs
block.attrs.module &&
(
block.type === 'renderjs' ||
block.attrs.lang === 'renderjs'
)
) {
block.type = 'renderjs'
block.attrs.lang = 'js'
descriptor.renderjs = preprocessBlock(block)
modules[block.attrs.module] = Object.assign({}, block, {
content: ''
})
}
})
if (Object.keys(modules).length) {
const filterModules = JSON.parse(JSON.stringify(modules))
Object.keys(filterModules).forEach(name => {
const filterModule = filterModules[name]
if (filterModule.attrs.src) {
filterModule.attrs.src = normalizeNodeModules(filterModule.attrs.src)
}
})
descriptor.template.attrs['filter-modules'] = Buffer.from(JSON.stringify(filterModules)).toString('base64')
}
return descriptor
}