代码拉取完成,页面将自动刷新
Loader是一个文件转换器,它是转换指定类型的文件成为另一类文件的,单纯的文件转换。
Plugin是一个扩展器,可以用于打包的整个过程,不直接操作文件,而是基于事件机制,监听webpack打包过程中的某些节点,来执行一些对应的任务
开发Loader:
const marked = require('marked')
module.exports = source => {
const html = marked(source)
return `module.exports = ${JSON.stringify(html)}`
}
开发Plugin:
Plugin通过hooks机制来实现
Plugin必须是一个函数或者是一个包含apply方法的对象
在开发Plugin时一般是通过定义一个类class,然后通过创建该类的实例来使用
// 清除bundle.js前面的注释
class MyPlugin {
apply(compiler) {
compiler.hooks.emit.tap('MyPlugin', compilation => {
for (const name in compilation.assets) {
if (name.endsWith('.js')) {
const contents = compilation.assets[name].source()
const withoutComments = contents.replace(/\/\*\*+\*\//g, '')
compilation.assets[name] = {
source: () => withoutComments,
size: () => withoutComments.length
}
}
}
})
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。