Manage packages dependencies with NPM

Mở đầu

Node Package Manager (NPM) là một ứng dụng dòng lệnh CLI (Command line interface) dùng để quản lý các package, thư viện và các phụ thuộc của chúng. Công cụ này cho phép publish các package của bạn lên trang chủ NPM và tìm kiếm, cài đặt các module, package do những người khác up lên. Trong bài viết này, tôi sẽ giới thiệu cách sử dụng NPM, làm thế nào để download, uninstall, quản lý các packages thông qua các ví dụ cụ thể.

Cài đặt/cập nhật NPM

  • Gói cài đặt của Node đã bao gồm NPM, vì vậy nếu máy đã cài Node thì NPM cũng đã sẵn có rồi. Nếu chưa, cài Node theo các bước sau (Nếu sử dụng OSX hoặc Window, đơn giản chỉ cần tải installer tương thích tại trang chủ Nodejs):
# Version cho Ubuntu
curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -
sudo apt-get install -y nodejs
  • NPM cập nhật thường xuyên hơn Node, nên đôi lúc cần check và cập nhật version mới nhất của nó:
# update NPM to latest and greatest
npm install -g npm

Khởi tạo một dự án NodeJs

  • Node project sử dụng một file đặc biệt tên là package.json, mô tả cụ thể các dependencies cũng như các thông tin chung để có thể chạy project. Để tạo file này sử dụng lệnh npm init, từng thông tin cơ bản như author, description, version, v.v...sẽ hiện để người dùng nhập vào, nếu không thay đổi gì, nội dung file được tạo ra cuối cùng như sau:
{
  "name": "npm_demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

Install NPM packages

  • Sử dụng lệnh npm install <package_name> để download và cài đặt NPM package nào đó, mặc định npm sẽ tìm version mới nhất để cài đặt, tuy nhiên ở đây ta có thể chỉ rõ version muốn cài đặt sau dấu @. Ví dụ dưới đây project cần sử dụng 2 thư viện lodash version mới nhất và express có chỉ định cụ thể version:
# install và lưu vào package.json
npm install lodash --save

# install version cụ thể
npm install [email protected] --save
  • npm install sẽ tạo ra một folder node_modules chứa tất cả các dependencies của cả project. Vào lại package.json, để ý thấy 2 package ta vừa install bên trên đã tự động được thêm vào danh sách dependencies. Ta cũng có thể liệt kê trước danh sách các dependencies package trong package và install một thể với lệnh
npm install
  • NPM sẽ thêm các package vào list dependencies nếu sử dụng --save flag. Để tự động quá trình này chạy lệnh npm config như sau:
npm config set save=true
npm config set save-exact=true
  • save-exact=true sẽ ngăn không cho npm tự động update package này và giữ nguyên version hiện tại. Ngoài ra, có thể sử dụng flag --save-dev khi sử dụng các package không phải là một phần của project, ví dụ như testing lib, building assets tools, v.v..
  • Tổng kết lại thì các lệnh cơ bản để sử dụng npm như sau:
# install a package globally
npm install -g <package_name>
# install a package locally (node_modules)
npm install <package_name>
# install a package locally and save it as dependency (package.json)
npm install <package_name> --save-dev
# install package locally, save it as dependency with the exact version
npm install <package_name> --save   --save-exact
# install all dependencies listed on package.json
npm install

View lại các package đã install và uninstall package

  • Để check lại danh sách các package mà ta đã install trên hệ thống, có thể sử dụng những lệnh sau:
# list ds các dependencies đã install cục bộ trong project
npm_demo npm ls --depth=0
[email protected] /home/workspace/monthly_report/201703/npm_demo
├── [email protected]
└── [email protected]
# list ds các dependencies đã install global trên toàn hệ thống
npm_demo npm ls -g --depth=0
/usr/local/lib
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
  • Để uninstall một package nào đó sử dụng một trong những lệnh sau:
# uninstall package nhưng vẫn để nó tồn tại trong dependencies folder (node_modules)
npm uninstall lodash
# uninstall và remove khỏi dependencies folder
npm uninstall --save lodash
# uninstall package toàn cục
npm uninstall -g <package_name>
# remove các uninstalled packages khỏi node_modules
npm prune # remove extranous

Tổng kết

NPM là một công cụ mạnh mẽ trong việc tạo các project Node và quản lý các dependencies. Trong bài viết này, tôi đã giới thiệu qua một số lệnh chính thường được sử dụng khi làm việc với NPM, hi vọng bài viết sẽ giúp ích phần nào cho các newbie đang bước đầu làm quen với các dự án NodeJs.

Nguồn tham khảo

  1. npmjs.com
  2. adrianmejia.com