• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

TypeError: compiler.plugin is not a function

21.01.26 16:20 작성 조회수 667

0

const path = require('path');
const MyWebpackPlugin = require("./my-webpack-plugin");

module.exports = {
mode : 'development',
entry: {
main: './src/app.js'
},
output: {
path: path.resolve('./dist'),
filename: '[name].js'
},
module : {
rules : [
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url-loader',
options: {
publicPath: './dist/',
name: '[name].[ext]?[hash]',
limit: 20000,
}
}
]
},
plugins: [
new MyWebpackPlugin()
]
}
class MyWebpackPlugin {
apply(compiler) {
/*compiler.hooks.done.tap("My Plugin", stats => {
console.log("MyPlugin: done")
})*/

compiler.plugin('emit', (compilation, callback) => {
const source = compilation.assets['main.js'].source();

compilation.assets['main.js'].source = () => {
const banner = [
'/**',
' * 이것은 BannerPlugin이 처리한 결과입니다.',
' * Build Date: 2019-10-10',
' */'
].join('\n');
return banner + '\n' + source;
}

callback();
})
}
}

module.exports = MyWebpackPlugin;

플러그인 부분 따라서 공부하던 중 class myWebpackPlugin을 블로그 소스로 가져온 뒤에 npm run build를 돌렸는데여,

[webpack-cli] TypeError: compiler.plugin is not a function

이런 에러가 발생했어여ㅠ_____ㅠ 왜 그러는걸까여?

답변 1

답변을 작성해보세요.

0

혹시 웹팩 5 버전을 사용하고 계신가요? 실습에서는 4버전을 사용하고 있습니다. 

비슷한 질문인데 참고해 주세요.