Fetch the repository succeeded.
const CopyWebpackPlugin = require('copy-webpack-plugin')
const fs = require('fs')
const path = require('path')
// const pluginName = 'ModularWebpackPlugin'
module.exports = class ModularWebpackPlugin {
apply (compiler) {
// console.log('\n>> base dir : ', compiler.options.context)
// console.log('\n>> output dir : ', compiler.options.output.path)
const src = path.join(compiler.options.context, 'modular.config')
fs.readFile(src, 'utf8', function (err, data) {
if (err) {
return console.error(err)
}
const modules = data.split('\n').map(item => item.trim()).filter(item => item !== '')
// console.log('\n>> modularConfig : ', modules)
const copys = []
modules.forEach(module => {
let s = module
if (s.startsWith('@/')) {
s = s.replace('@/', 'src/')
} else if (!s.startsWith('.')) {
s = path.join('node_modules', s)
}
s = path.resolve(compiler.options.context, s, 'public')
if (fs.existsSync(s)) {
copys.push({
from: s,
to: compiler.options.output.path,
toType: 'dir',
ignore: [
'.DS_Store'
]
})
}
})
// console.log('\n>> ', copys)
if (copys.length > 0) {
new CopyWebpackPlugin(copys).apply(compiler)
}
})
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。