Với những dev được làm việc nhiều với javascript, chắc hẳn các bạn cũng đã từng dùng lệnh npm install, npm update, npm install bootstrap … Bài viết “NPM là gì? Tất cả những thông tin cần biết về NPM” sẽ giúp bạn có cái nhìn tổng quan về các công cụ quản lý thư viện lập trình NPM.
NPM là gì?
NPM – hay là “Node Package Manager” – là một công cụ tạo và quản lý các thư viện lập trình Javascript cho Node.js. Trong cộng đồng Javascript, các lập trình viên chia sẻ hàng trăm nghìn các thư viện với các đoạn code đã thực hiện sẵn một chức năng nào đó. Nó giúp cho các dự án mới tránh phải viết lại các thành phần cơ bản, các thư viện lập trình hay thậm chí cả các framework.
Công cụ bao gồm hai phần chính:
- CLI (giao diện dòng lệnh) để xuất bản và tải xuống các gói.
- Kho lưu trữ trực tuyến lưu trữ các gói JavaScript.
Cách hoạt động của NPM
NPM hoạt động dựa trên 2 vai trò sau:
- NPM là repository được sử dụng với mục đích publish project Node.js nguồn mở. NPM chính là nền tảng trực tuyến cho phép người dùng có thể thực hiện thao tác publish hoặc chia sẻ một số công cụ khác được viết bằng JavaScript.
- Đây là công cụ thuộc dạng dòng lệnh hỗ trợ người dùng tương tác với nền tảng trực tuyến như máy chủ hoặc trình duyệt. NPM cũng là tiện ích hỗ trợ cho việc cài đặt hoặc gỡ bỏ cài đặt gói, thực hiện quản lý các phiên bản, quản lý do máy chủ thực hiện quản lý phiên bản, quản lý depency cần thiết để chạy dự án.
Lưu ý về cách thức hoạt động của NPM:
- Bắt buộc phải cài Node.js thì mới có thể sử dụng NPM bởi chúng được đóng gói chung.
- Nếu có tiện ích dòng lệnh của NPM thì Node.js có thể hoạt động hiệu quả hơn nhiều lần.
- Dự án của bạn bắt cuộc phải chứa tệp tên là package.json để có thể sử dụng được các gói. Bạn có thể tìm thấy được bên trong những gói này những metadata cụ thể nhất dành cho project.
Metadata sẽ giúp người dùng xác định được project: Tên gọi của dự án, phiên bản phát hành đầu tiên, phần mô tả, mục điểm vào, kiểm tra tất cả các lệnh, Git respiratory, từ khoá, giấy phép, các điểm phụ thuộc và Dev Dependencies.
Công dụng của NPM
NPM đơn giản hóa quản lý dự án đáng kể. Đây là công cụ giúp bạn quản lý dễ dàng hơn rất nhiều. Mọi thư viện đều sẵn có trên NPM. Chỉ cần một dòng lệnh để tải về và dễ dàng bao gồm chúng vào dự án của bạn.
Mỗi đoạn mã này có thể phụ thuộc vào nhiều nguồn mở khác nhau. Chúng may mắn khi có các công cụ quản lý thư viện, vì nếu không, việc quản lý những thư viện này sẽ đòi hỏi rất nhiều công sức.
Cộng đồng sử dụng NPM rộng lớn, với hàng nghìn thư viện được phát hành. Nó hỗ trợ JavaScript ES6, React, Express, Grunt, Duo và nhiều công nghệ khác. Gần đây, đã xuất hiện công cụ Yarn, một phiên bản tương tự NPM, được phát triển bởi Facebook với nhiều tính năng xuất sắc, có thể thay thế NPM trong tương lai.
Nếu bạn đã lập trình bằng Php, bạn sẽ biết Composer là công cụ quản lý thư viện cho ngôn ngữ đó, tương tự như NPM là công cụ quản lý thư viện cho JavaScript.
Phân loại các dạng Package mà NPM có thể cài đặt
Package được chia ra làm 2 loại, đó là: Simple dependencies và Development dependencies.
- Simple dependencies là những package bắt buộc phải có trong quá trình chạy sản phẩm, kiểu như một thư viện cung cấp các hàm mà code của bạn cần. Khi cài đặt Simple dependencies, Npm sẽ tự động cài đặt tất cả các dependencies cần thiết. Đó cũng chính là lí do vì sao khi bạn cài đặt 1 package và vào folder node_modules sẽ thấy cả đống các package khác mà bạn không hề cài đặt
- Development dependencies là những package bắt buộc khi phát triển cũng như phát hành sản phẩm. Kiểu như các trình biên dịch giúp biên dịch đoạn code của bạn về javascript, rồi các framework phục vụ cho việc kiểm thử,… Khi cài đặt Development Dependencies, sẽ chỉ cài đặt các dependencies mà cần thiết.
Cài đặt PNM
Như đã đề cập ở trên, khi bạn cài đặt Node.js thì NPM cũng sẽ được kèm theo. Bạn có thể xem cách cài đặt Node.js ở bài viết này.
Đây là một phần mềm cài đặt trên máy tính nên bạn có thể sử dụng nó để cài đặt các thư viện Javascript từ trên Internet. Bạn chỉ cần mở cửa sổ Terminal (hoặc CMD) và thực thi các lệnh.
Bạn có thể tìm hiểu thêm về dòng lệnh được sử dụng với NPM.
Những câu lệnh của NPM
Dưới đây là một số câu lệnh cơ bản khi làm việc với NPM hoặc Node.js:
Nội dung | Câu lệnh |
Kiểm tra phiên bản cài đặt | npm -v |
Cập nhật NPM mới nhất | npm install -g npm@latest npm update npm -g |
Khởi tạo dự án Nodejs | npm init |
Tìm kiếm các thư viện | npm search [search terms] |
Gỡ bỏ mọi thư viện đã cài đặt | npm uninstall |
Cài đặt gói thư viện bất kì có trên https://www.npmjs.com | |
Package sẽ được thêm vào dependencies trong file package.json | npm install package-name@version -save |
Package sẽ được thêm vào devDependencies trong file package.json | npm install package-name@version --save-dev |
Package sẽ được thêm vào optionalDependencies trong file package.json | npm install package-name@version --save-optional |
Cài đặt package từ Github mà không có trên https://www.npmjs.com | npm install @username/package-name |
Cài đặt package từ GitLab mà không có trênhttps://www.npmjs.com | npm install gitlab:username/package-name |
Cài đặt từ Git | npm install git://github.com/substack/node-browserify.git |
Cài đặt package theo kiểu local | npm install -g package-name@version |
Cài đặt tất cả các packages được liệt kê trong file package.json | npm install |
Cập nhật production packages | npm update |
Cập nhật dev packages | npm update -dev
|
Cập nhật global packages | npm update -g |
Cập nhật riêng lẻ từng package theo tên | npm update package-name
|
Liệt kê tất cả packages | npm ls |
Kiểm tra outdated packages | npm outdated |
Chạy các câu lệnh cài đặt trong package.json | npm run script-cmd-name |
Câu lệnh sẵn mà NPM tự hiểu | npm start |
Liệt kê tất cả cấu hình cho NPM | npm config ls -l |
Lời kết
Tổng kết lại, NPM là một công cụ giúp chúng ta dễ dành quản lý các thư viện Javascript một cách đơn giản hơn, tiện dụng, dễ dàng hơn, từ đó tiết kiệm tốt đa thời gian cho các dev. Hi vọng Tothost mong các bạn có thể hiểu rõ hơn về nó, giải đáp cho câu hỏi là gì và hoạt động như thế nào và cách sử dụng công cụ này hiệu quả nhất, có thể tối ưu hóa hiệu suất làm việc của mình. Chúc các bạn thành công!