const path = require('path')
const {
removeExt,
normalizePath,
getPagesJson
} = require('@dcloudio/uni-cli-shared')
const {
normalizeNodeModules
} = require('@dcloudio/webpack-uni-mp-loader/lib/shared')
const SCROLLER_COMPONENTS = [
'list',
'scroller',
'scroll-view',
'waterfall'
]
module.exports = function (content, map) {
this.cacheable && this.cacheable()
const source = content.trim()
if (SCROLLER_COMPONENTS.find(name => source.indexOf('<' + name) === 0)) {
return this.callback(null, content, map)
}
if (source.indexOf('
resourcePath = normalizeNodeModules(
removeExt(normalizePath(path.relative(process.env.UNI_INPUT_DIR, this._module.issuer.issuer.resource)))
)
}
if (!process.UNI_NVUE_ENTRY[resourcePath]) {
return this.callback(null, content, map)
}
// 暂时实时读取配置信息,查找是否 disableScroll
const appJson = getPagesJson()
let pageJson
if (appJson.nvue) { // 旧版本
if (!appJson.nvue || !appJson.nvue.pages) {
return this.callback(null, content, map)
}
const pagePath = resourcePath + '.html'
pageJson = appJson.nvue.pages.find(page => page.path === pagePath)
} else {
pageJson = appJson.pages.find(page => page.path === resourcePath)
}
if (!pageJson) {
return this.callback(null, content, map)
}
if (!appJson.globalStyle) {
appJson.globalStyle = {}
}
Object.assign(appJson.globalStyle, appJson.globalStyle['app-plus'] || {})
pageJson.style = pageJson.style || {}
Object.assign(pageJson.style, pageJson.style['app-plus'] || {})
const pageJsonStyle = Object.assign(appJson.globalStyle, pageJson.style)
if (pageJsonStyle.disableScroll === true) {
return this.callback(null, content, map)
}
this.callback(null,
`${content}`,
map)
}