5s quảng cáo

Mình có 1 shopee nho nhỏ bán ốp iPhone kunn.oops, mọi người ủng hộ nhé :D

Mở đầu

Webpack là một công cụ giúp chúng ta build và quản lý project của mình dưới dạng module.

Khi thực tế cho thấy ở phía frontend ngày càng phình to hơn về các file javascript cũng như nhiều công nghệ mới. Kéo theo đó dẫn tới sự cồng kềnh của một project. Dẫn tới cần có một công cụ giúp chúng ta quản lý và chia module. Lúc cần thì lấy ra sử dụng chứ k xài bừa bãi.

webpack

Mục tiêu của Webpack

  • Quản lý dependency và load lên sử dụng khi cần thiết
  • Thời gian khởi tạo ngắn
  • static files cũng có thể trở thành module
  • linh hoạt sử dụng mọi thư viện 3rd
  • Phù hợp với các dự án lớn

Cài đặt Webpack vào project của bạn

Yêu cầu: Máy tính của bạn cần cài đặt Node.jsNode Package Manager (npm).

Nếu chưa có, bạn có thể tải về tại đây: https://www.npmjs.com/get-npm

Chúng ta sẽ tạo ra một project đơn giản để minh họa cách Webpack hoạt động:

mkdir webpack-example
cd webpack-example
npm init -y
npm install webpack --save-dev
npm install webpack-cli --save-dev

Cấu trúc thư mục:

  webpack-example
  |- package.json
  |- index.js
  |- data.js
  |- /dist
    |- index.html

Tạo ra một module bằng câu lệnh export

// File data.js
var courses = [
	'java',
	'spring boot',
	'ml'
];

export default {
  name: 'loda',
  data: courses
}

Sử dụng module bằng lệnh import

// index.js
import object from './data.js'

console.log(object);

Đây là cách chúng ta phân chia project của mình thành các module, vừa ngắn gọn, lại giúp code sáng sủa hơn rất nhiều.

Tuy nhiên, khi mang các file này ra chạy thì sẽ không được đâu các bạn, vì cái import với export là chúng ta quy định với thằng Webpack thôi. Còn Browser k hiểu đâu, nó sẽ không biết cái object kia ở đâu ra.

Để chạy được, chúng ta sử dụng Webpack để ghép nối các module lại thành 1 file duy nhất, khi đó Browser sẽ hiểu được.

Webpack config

Trước khi build, chúng ta sẽ phải config cho Webpack để nó biết biết là build ra file tên gì, và đặt ở đâu.

Tạo file webpack.config.js tại thư mục gốc:

const path = require('path');

module.exports = {
  entry: './index.js', // Đầu vào là file index.js lúc nãy
  output: {
    filename: 'main.js', // Tạo ra file tên main.js
    path: path.resolve(__dirname, 'dist') // đặt vào thư mục dist
  }
};

Okay, giờ thì chạy câu lệnh tại thư mục gốc của project:

$  webpack

Vào xem thư mục dist lúc này, sẽ có file main.js, chứa toàn bộ code của dự án khi đã ghép các module lại với nhau:

//...
var r={name:"loda",data:["java","spring boot","ml"]};
console.log(r);
//...

Mông lung như một trò đùa phải không :)))

Chúc các bạn sử dụng Webpack thành công!