Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
Khái niệm bundle file
Em biết webpack dùng để bundle file js, html, ... nhưng bundle có nghĩa là gì ạ, và nhược điểm của webpack là gì vậy ạ
  • Answer
Remain: 5
1 Answer
Avatar
monkey Professional
monkey Professional
Câu hỏi này tương đối thú vị đó em. Để hiểu được tại sao lại phải dùng webpack thì chúng ta phải nhìn lại 1 xíu các web thông thường, nó sẽ kiểu:

<span><<span>script</span> <span>src</span>=<span>"/js/main.js"</span>></span><span></span><span></<span>script</span>></span>
<span><<span>script</span> <span>src</span>=<span>"/js/hello.js"</span>></span><span></span><span></<span>script</span>></span>
<span><<span>script</span> <span>src</span>=<span>"/js/world.js"</span>></span><span></span><span></<span>script</span>></span>

Như vậy thì điều gì sẽ xảy ra khi các biến hay các hàm ở trong các file bị trùng nhau? Có thể nó sẽ override hoặc bị báo lỗi tuỳ vào trình thông dịch javascript (tuỳ vào browser). Vậy nên webpack đã ra đời để giải quyết việc này, nó sẽ đóng gói các file thành các module riêng kiểu này:

var hello = require('hello')
var world = require('world')
var main = require('main')

Vậy là mọi vấn đề đã được giả quyết. Tuy nhiên nhược điểm của phương pháp này là khi code với dự án web thông thường thì sẽ hơi mất công khi mỗi lần chỉnh sửa lại file build lại file bundle đang import ở html kiểu:

<span><<span>script</span> <span>src</span>=<span>"/js/all.min.js"</span>></span><span></span><span></<span>script</span>></span>

Và việc debug cũng có phần nào khó khăn khi code bị đóng gói chung vào 1 file bundle nên cũng hơi khó tra cứu.

Thêm 1 điểm nữa là các javascript thông thường giờ sẽ phải chuyển qua dạng viết module để sử dụng được phần exports.

Quay trở lại bundle là gì, thì nó là kết quả của việc đóng gói các module bằng webpack nhé.

  • 0
  • Reply