Tổng quan về Node Package Manager trong Node.js

Node Package Manager (NPM) là một công cụ dùng để quản lý các dependency trong Node.js. Trong bài viết này, thông qua một số thao tác cơ bản, mình giới thiệu với các bạn tổng quan về Node Package Manager các bạn nhé!

Để dễ hình dung, mình sẽ tạo mới một Node.js project để làm ví dụ:

Tổng quan về Node Package Manager trong Node.js

Điều đầu tiên, các bạn cần phải biết là trong Node.js, chúng ta có nhiều Node.js module và mỗi một Node.js module có thể bị depend lên một hoặc nhiều Node.js module khác,

Ví dụ như chúng ta có module Jquery Selecton https://www.npmjs.com/package/jquery-selecton thì phải có module JQuery https://www.npmjs.com/package/jquery thì mới chạy được.

Việc sử dụng NPM để quản lý các module trong Node.js sẽ giúp chúng ta không cần phải quan tâm đến các dependency mà một Node.js module cần, NPM sẽ quản lý việc đó cho chúng ta.

Chúng ta sử dụng Node Package Manager bằng một công cụ command-line tên là npm

Để thêm mới một Node.js module nào đó vào project Node.js, chúng ta có thể sử dụng câu lệnh có cấu trúc như sau:

Trong đó:

  • module_name là tên của Node.js module mà các bạn cần sử dụng
  • version là version của Node.js module đó. Nếu các bạn muốn install phiên bản mới nhất của module thì các bạn hãy remove “@<version>” đi nhé.

Khi đó một thư mục mới tên là node_modules sẽ được tạo ra trong project của chúng ta và chứa Node.js module mà chúng ta muốn thêm.

Ví dụ, bây giờ mình cần install module JQuery phiên bản mới nhất, mình sẽ chạy câu lệnh như sau:

Kết quả:

Tổng quan về Node Package Manager trong Node.js

Trong trường hợp, các bạn muốn sử dụng một Node.js module nào đó trong command-line luôn thì hễ thêm thêm tham số -g (mang ý nghĩa global) trong câu lệnh trên:

Khi đó, Node.js module này sẽ được thêm vào thư mục node_modules trong thư mục “/usr/local/lib/” trên macOS. Và các bạn có thể sử dụng nó trong command-line luôn, không cần phải tạo mới Node.js project nữa.

Trong một Node.js project, NPM quản lý các dependency thông qua một tập tin tên là package.json.

Như mình đã đề cập trong bài viết Tạo mới Node.js project sử dụng Node Package Manager, kết quả sau khi chúng ta tạo mới Node.js project là một tập tin package.json. Và chúng ta có thể sử dụng tập tin này để quản lý các dependency trong Node.js.

Nội dung của tập tin package.json trong project mình tạo ở trên như sau:

Các bạn có thể khai báo các Node.js module mà chúng ta cần sử dụng vào tập tin này bằng tay hoặc sử dụng câu lệnh “npm install <module_name>” cùng với một parameter nữa là “–save” hoặc “–save-dev”. Sự khác nhau giữa “–save” và “–save-dev” là cái đầu dành cho những module cần sử dụng trên môi trường production còn cái còn lại dành cho những module chỉ cho mục đích development.

Toàn bộ câu lệnh sẽ là:

Hoặc:

Ví dụ mình muốn thêm JQuery module phiên bản mới nhất sử dụng cho môi trường production thì mình sẽ chạy câu lệnh như sau:

Khi đó, nội dung của tập tin package.json sẽ là:

Nếu mình chạy câu lệnh sau:

thì kết quả sẽ là:

Trong trường hợp, các bạn thêm Node.js module bằng tay thì sau khi thêm, hãy chạy câu lệnh npm install để NPM download Node.js module đó về nhé. Ví dụ, mình thêm vào tập tin package.json của project của chúng ta một Node.js module có tên là bootstrap https://www.npmjs.com/package/bootstrap như sau:

sau đó chạy npm install thì kết quả sẽ là:

Tổng quan về Node Package Manager trong Node.js

Nếu các bạn để ý thì cách khai báo version của các Node.js module trong nhiều trường hợp khác nhau sẽ khác nhau, sẽ có thêm những ký tự như “>”, “^”, … Mỗi ký tự sẽ có những ý nghĩa khác nhau, cụ thể như sau:

Version Ý nghĩa
4.1.1 Đúng chính xác version 4.1.1
>4.1.1 Lớn hơn version 4.1.1
>=4.1.1 Lớn hơn hoặc bằng version 4.1.1
<4.1.1 Nhỏ hơn version 4.1.1
<=4.1.1 Nhỏ hơn hoặc bằng version 4.1.1
~4.1.1 Xấp xỉ tương đương version 4.1.1
^4.1.1 Tương thích với version 4.1.1
4.1.x Bất kỳ version nào bắt đầu với 4.1.
* Bất cứ version nào cũng được

 

Chia sẽ bài viết này ...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Add Comment