인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

seungmileedev1209's profile image
seungmileedev1209

asked

Understanding and Practice of Frontend Development Environment (webpack, babel, eslint..)

TypeError: compiler.plugin is not a function

Resolved

Written on

·

833

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

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

웹팩babelnodejseslint

Answer 1

0

jeonghwan님의 프로필 이미지
jeonghwan
Instructor

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

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

seungmileedev1209's profile image
seungmileedev1209

asked

Ask a question