=> μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λͺ¨λ λ²λ€λ¬λ₯Ό μ¬μ©
Module bundler(λͺ¨λ λ²λ€λ¬)
bundle
: λ¬Άμ, 보λ°λ¦¬
- μ¬λ¬ κ°μ νμΌλ€μ νλμ νμΌλ‘ λ§λ€μ΄μ£Όλ λΌμ΄λΈλ¬λ¦¬
=> μ¬λ¬ κ°μ μλ°μ€ν¬λ¦½νΈ νμΌμ νλμ νμΌλ‘ λ¬Άμ΄ ν λ²μ μμ²μ ν΅ν΄ κ°μ Έμ¬ μ μλ€.
=> μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μμΆνκ³ μ΅μ ν νμ¬ λ‘λ© μλλ₯Ό λμΌ μ μλ€.
=> λͺ¨λ λ¨μλ‘ κ°λ° κ°λ₯, κ°λ μ±κ³Ό μ μ§λ³΄μκ° μ©μ΄
=> μ΅μ μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λΈλΌμ°μ μμ μ¬μ© κ°λ₯
entry
λ webpackμ΄ λΉλν νμΌμ μμ μμΉλ₯Ό λνλentry
μ§μ μΌλ‘λΆν° import λμ΄μλ λ€λ₯Έ λͺ¨λκ³Ό λΌμ΄λΈλ¬λ¦¬μ λν μμ‘΄μ±μ μ°Ύλλ€.entry
μ κΈ°λ³Έ μ€μ κ° = ./src/index.js
// webpack.config.js
// entryλ₯Ό ./path/to/my/entry/file.jsλ‘ μ€μ
module.export = {
entry: './path/to/my/entry/file.js'
// μ¬λ¬κ°μ entry μ μΈμ΄ κ°λ₯ν©λλ€.
// entry: {
// index: './path/to/my/entry/index.js',
// file: './path/to/my/entry/file.js'
//}
}
output
μ μΉν©μ μν΄ μμ±λλ λ²λ€μ λ΄λ³΄λΌ μμΉμ νμΌμ μ΄λ¦μ μ§μ output
μ κΈ°λ³Έ μ€μ κ° = ./dist/mainjs
output.path
: λ²λ€λ νμΌμ λ΄λ³΄λΌ λλ μ½λ¦¬ μμΉ μ§μ output.filename
: λ²λ€λ νμΌ μ΄λ¦μ μ§μ // webpack.config.js
const path = require('path');
module.exports = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
}
// μ¬λ¬ κ°μ entryκ° μ μλμμ κ²½μ°, μλμ κ°μ μ€μ μ΄ νμ
// output: {
// path: path.resolve(__dirname, 'dist'),
// filename: '[name].js'
// }
}
loaders
λ₯Ό ν΅ν΄ webpackμ΄ λ€λ₯Έ μ νμ νμΌμ μ²λ¦¬ν μ μλλ‘ μ ν¨ν λͺ¨λλ‘ λ³νtest
νλ‘νΌν° : λ³νν νμΌ μ§μ use
νλ‘νΌν° : λ³νν νμΌμ μ§μ ν λ‘λλ₯Ό μ€μ // webpack.config.js
const path = require('path');
module.exports = {
output: {
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{ test: /\.txt$/, use: 'raw-loader' }
]
}
};
loaders
λ λͺ¨λμ μ²λ¦¬νκ³ , plugins
λ λ²λ€λ νμΌμ μ²λ¦¬plugins
λ λ²λ€λ νμΌμ λλ
ν νκ±°λ, μμΆ// webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack'); //to access built-in plugins
module.exports = {
module: {
rules: [
{ test: /\.txt$/, use: 'raw-loader' }
]
},
plugins: [
new HtmlWebpackPlugin({template: './src/index.html'})
]
};
mode
μ 3κ°μ§ μ΅μ
production
: mode
μ κΈ°λ³Έκ°, κ° μ€μ λ§λ€ λ΄μ₯λ μ΅μ ν μ΅μ
μ μλμΌλ‘ μ€μ development
: λΉ λ₯΄κ² λΉλnone
: μ무 κΈ°λ₯μμ΄ webpackμ΄ λΉλmodule.exports = {
mode: 'production'
};
entry
λ‘ μ€μ λ μμμ μμ μμ μ±μ κ°μ§ λͺ¨λ νμΌμ μμΆνμ¬ output
μ§μ μ νλμ μλ°μ€ν¬λ¦½νΈ νμΌμ λ§λ€μ΄ μ€λ€.loaders
λ₯Ό ν΅ν΄ μλ°μ€ν¬λ¦½νΈμμ μ ν¨ν λͺ¨λλ‘ λ³ννκ³ , plugins
λ₯Ό μ΄μ©νμ¬ λ²λ€λ μλ°μ€ν¬λ¦½νΈλ₯Ό λλ
ννκ±°λ μμΆνλ€.mode
λ webpackμ μ¬μ© λͺ©μ μ λ°λΌ μ€μ μ μ§μ νλ μν μ νλ€.μ°Έκ³ λ§ν¬
λ‘λμ νλ¬κ·ΈμΈ.. λ무 μ΄λ €μμ....