diff --git a/README.md b/README.md index e69de29..62363a0 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,356 @@ +
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 init
+
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:
+ Ví dụ: +
+
+ 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
+