Bước 1: Cài đặt Node.js và npm
Webpack cần Node.js và npm để hoạt động. Nếu chưa cài đặt Node.js và npm, có thể tải xuống từ trang chủ của Node.js (https://nodejs.org).
Bước 2: Khởi tạo npm
npm install
Sau khi chạy xong lên trên thì trong thư mục sẽ có 1 file package.json
Bước 3: Cài đặt webpack
Sử dụng lệnh sau để cài đặt webpack và webpack-cli:
npm install webpack webpack-cli --save-dev
Sau khi hoàn thành thì file package.json sẽ có nội dung như thế này:
Bước 4: Tạo một tệp cấu hình webpack
Webpack sử dụng một tệp cấu hình để cấu hình cách webpack hoạt động. Tạo một tệp webpack.config.js mới trong thư mục gốc dự án và thêm các cài đặt sau:
Ví dụ:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
};
Entry: Là file webpack sẽ bắt đầu làm việc và thực hiện viêc nạp file để thực hiện việc bundler, cần phải trỏ tên và đúng đường dẫn đến file code cần bundler
Output : Nó sẽ có tác dụng chỉ cho webpack biết cần phải lưu file tên gì và được compile ra đâu
Bước 6: Chạy webpack
Để chạy webpack, sử dụng lệnh sau:
npx webpack
Lệnh này sẽ đóng gói mã nguồn JavaScript của bạn và lưu trữ nó trong thư mục đầu ra được chỉ định trong tệp cấu hình webpack.
module.exports = {
entry: './src/index.js',
// ...
};
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
};
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{ test: /.tsx?$/, use: 'ts-loader' },
]
},
// ...
};
2.1.4.1 HtmlWebpackPlugin có tác dụng tạo ra một tệp html có tiêu đề là webpack demo và đặt tên là index.html như ví dụ ở bên dưới:
npm install --save-dev html-webpack-plugin
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
plugins: [
new HtmlWebpackPlugin({
title: 'webpack demo',
filename: 'index.html',
template: 'src/template.html'
})
],
// ...
};
2.1.4.2 CleanWebpackPlugin có tác dụng xóa bỏ các tệp js,html,css.. đã được bundler trước đấy:
npm install --save-dev clean-webpack-plugin
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
// ...
plugins: [
new CleanWebpackPlugin()
]
};
Thêm các dòng bên dưới vào file webpack.config.js để tối ưu hóa đóng gói file bundler:
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
test: /.js(?.*)?$/i,
}),
],
},
Ghi chú:
Tuy nhiên optimization còn có tùy chọn SplitChunks:
Sử dụng đoạn mã code bên dưới vào file webpack.config.js
optimization: {
splitChunks: {
chunks: 'all',
},
},
Sử dụng đoạn mã code bên dưới vào file webpack.config.js
resolve: {
modules: [path.resolve(__dirname, 'src'), 'node_modules'],
},
resolve: {
extensions: ['.js', '.jsx', '.json'],
},
Ghi chú:
Sử dụng đoạn mã code bên dưới vào file webpack.config.js
module.exports = {
mode: 'development'
}
Ghi chú:
module.exports = {
watch: true // Thêm mới dòng này
}
npm run dev