const path = require('path')
|
const {
|
normalizePath,
|
getPlatformExts
|
} = require('@dcloudio/uni-cli-shared')
|
const { deleteAsset } = require('../shared')
|
|
module.exports = function (compilation) {
|
// 移除部分含有错误引用的 wxss 文件
|
const styleImports = {}
|
compilation.getAssets().forEach((asset) => {
|
const name = asset.name
|
const styleExtname = getPlatformExts().style
|
if (name.endsWith(styleExtname)) {
|
let origSource = asset.source.source()
|
origSource = origSource.trim ? origSource.trim() : ''
|
const result = origSource.match(/^@import ["'](.+?)["']$/)
|
if (result) {
|
const stylePath = normalizePath(path.join(path.dirname(name), result[1]))
|
if (compilation.getAsset(stylePath)) {
|
styleImports[stylePath] = styleImports[stylePath] || []
|
styleImports[stylePath].push(name)
|
} else {
|
if (styleImports[name]) {
|
styleImports[name].forEach(name => deleteAsset(compilation, name))
|
delete styleImports[name]
|
}
|
deleteAsset(compilation, name)
|
}
|
}
|
}
|
})
|
}
|