<p><strong>Bước 4:</strong> Tạo một tệp cấu hình webpack</p>
<p>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 <strong>webpack.config.js</strong> mới trong thư mục gốc dự án và thêm các cài đặt sau:</p>
<p><strong>Entry</strong>: 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</p>
<p><strong>Output</strong> : 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</p>
<li>Trong ví dụ này, đang chỉ định rằng tệp đầu ra là <strong>./dist/bundle.js.</strong></li>
</ul>
<h3>2.1.3 Cấu hình các loader để xử lý các loại tệp khác nhau với <strong>module</strong></h3>
<ul>
<li>Webpack sử dụng các loader để xử lý các loại tệp khác nhau, chẳng hạn như các tệp CSS, hình ảnh và cả JavaScript. Để cấu hình các loader,có thể sử dụng tùy chọn <strong>module.rules</strong>.</li>
<li>Trong ví dụ này, đang sử dụng ts-loader để xử lý tệp typescript.</li>
</ul>
<strong>Có thể tham khảo thêm các ứng dụng khác như xử lý css,image <a href="https://webpack.js.org/configuration/module/#rule" target="_blank">Tại đây</a></strong>
<h3>2.1.4 Sử dụng các plugin để mở rộng chức năng của webpack</h3>
<ul>
<li><strong>Webpack</strong> được phát triển khá nhiều plugin <strong>ví dụ: HtmlWebpackPlugin,CleanWebpackPlugin.</strong> Đây là một số plugin cơ bản hay được sử dụng nhất.</li>
</ul>
<p><strong>2.1.4.1 </strong><strong>HtmlWebpackPlugin</strong> có tác dụng tạo ra một tệp html có tiêu đề là <strong>webpack demo</strong> và đặt tên là <strong>index.html</strong> như ví dụ ở bên dưới:</p>
<ul>
<li>Để sử dụng được <strong>HtmlWebpackPlugin</strong>, chạy câu lệnh sau:</li>
<h3>2.1.5 Sử dụng optimization cho cấu hình của webpack</h3>
<ul>
<li>Tùy chọn <strong>Optimization</strong> trong cấu hình webpack cho phép cấu hình tối ưu hoá cho quá trình đóng gói mã nguồn. Tùy chọn này bao gồm các tối ưu hoá như tối ưu hoá đóng gói, tối ưu hoá nén và tối ưu hoá tải trang.</li>
</ul>
<p>Thêm các dòng bên dưới vào file <strong>webpack.config.js</strong> để tối ưu hóa đóng gói file bundler:</p>
<li><strong>minimize: true</strong> chỉ định webpack nên tối ưu hóa đóng gói tập tin bằng plugin <strong>TerserPlugin</strong> để nén các tệp JavaScript</li>
</ul>
<p><strong>Tuy nhiên</strong> optimization còn có tùy chọn <strong>SplitChunks</strong>:</p>
<ul>
<li>Tùy chọn này cho phép cấu hình tách các module chung thành các tệp riêng biệt để tăng tốc độ tải trang</li>
</ul>
<p>Sử dụng đoạn mã code bên dưới vào file <strong>webpack.config.js</strong></p>
<li><strong>Resolve</strong> khi thêm vào file <strong>webpack.config.js</strong> cho phép chỉ định các đường dẫn và tệp thêm mới theo từng dự án giúp cho việc import các module và tệp tin trong mã nguồn trở nên dễ dàng và rõ ràng hơn.</li>
</ul>
<p>Sử dụng đoạn mã code bên dưới vào file <strong>webpack.config.js</strong></p>
<li>['.js', '.jsx', '.json'] là danh sách các phần mở rộng tệp tin mặc định cho webpack tìm kiếm. Nếu import một tệp tin mà không chỉ định phần mở rộng, webpack sẽ tìm kiếm các tệp tin có phần mở rộng này trước khi trả về lỗi.</li>
</ul>
<a href="https://webpack.js.org/configuration/resolve/">Tham khảo thêm ở đây</a>
<h3>2.1.7 Chế độ (mode) trong Webpack</h3>
<ul>
<li>Việc thiết lập kịch bản môi trường nhằm tăng thời gian deploy và giảm thời lượng chờ không cần thiết. Chế độ này được Webpack giới thiệu trong phiên bản</li>
<li>Có 2 tùy chọn chính:</li>
<ul>
<li>development</li>
<li>production</li>
</ul>
</ul>
<p>Sử dụng đoạn mã code bên dưới vào file <strong>webpack.config.js</strong></p>
<p style="margin: 0; color: #818181; font-style: italic;">npm run dev</p>
</blockquote>
<ul>
<li>Khi chúng ta thêm option này vào file config thì khi chạy câu lệnh <strong>npm run dev</strong> webpack sẽ luôn theo dõi các file, bất cứ thay đổi code nào sau khi ấn save sẽ được tự động build lại.</li>