NPM là gì? Sử dụng NPM hiệu quả để đơn giản hóa công việc
NPM là gì?
NPM là gì? – NMP là viết tắt của 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.
Nếu trong project của bạn cần cài đặt cả chục scripts từ các thư viện khác nhau. Điều đó tương đương với việc bạn phải tải về source của chục thư viện, include chúng vào trong source của bạn. Một công việc tốn khá nhiều thời gian khủng khiếp.
Tham khảo việc làm NodeJS lương cao trên TopDev
Công dụng của NPM là gì
Với npm
, công việc sẽ đơn giản đi rất nhiều, chúng giúp bạn thực hiện việc quản lý đơn giản hơn rất nhiều. Các thư viện đều có sẵn trên npm, bạn chạy một dòng lệnh để tải về và dễ dàng include chúng hơn.
Mỗi đoạn code này có thể phụ thuộc vào rất nhiều các mã nguồn mở khác, thật may mắn khi các công cụ quản lý thư viện ra đời, nếu không sẽ mất rất nhiều công sức trong việc quản lý các thư viện này.
Cộng đồng sử dụng npm
rất lớn, hàng nghìn các thư viện được phát hành, hỗ trợ Javascript ES6, React, Express, Grunt, Duo… Hiện nay cũng đã xuất hiện thêm Yarn một công cụ tương tự npm
, được Facebook phát triển với nhiều tính năng vượt trội có khả năng sẽ thay thế npm
.
Nếu như bạn từng code Php thì sẽ biết Composer là công cụ quản lý thư viện của nó, tương tự như NPM là công cụ quản lý thư viện Javascript.
Cài đặt NPM
npm
có sẵn khi bạn tải NodeJS về. Để kiểm tra xem trên hệ thống của bạn đã được cài npm chưa chúng ta sử dụng lệnh npm -v
, nếu một phiên bản hiện ra thì hệ thống của bạn đã được cài đặt npm.
Vì NPM là một phần mềm cài đặt trên máy tính của bạn nên bạn có thể sử dụng nó để cài đặt các thư viện Javascript từ trên Internet. Để cài đặt một thư viện nào đó, chỉ cần mở cửa sổ Terminal (hoặc CMD) và thực thi lệnh giống dưới đây:
npm install package-name
VD như mình thử tải Vuejs về sử dụng sẽ dùng lệnh:
npm install vue
Khi đó muốn sử dụng Vue.js chúng ta chỉ cần sử dụng lệnh require():
var Vue = require('vue');
Cài đặt global và cài đặt local
Có hai cách để cài đặt một gói bằng npm:
- Local: sẽ tạo ra thư mục
node_modules
nếu chưa có trong project hoặc nếu có rồi nó sẽ lấy code của gói cần cài đặt đưa vào đây, tức chỉ hiện diện trong thư mục của project hiện tại. Khi cần sử dụng bạn có thể sử dụng lệnhrequire()
. - Global: sẽ lưu trữ code của gói trong các file hệ thống cố định trong máy, chỉ có thể dùng các package này thông qua các hàm CLI (Command Line Interface) ví dụ như
gulp
. Không thể dùng package thông quarequire()
.
Mặc định thì các package khi cài đặt đều sẽ là cài trên project của bạn.
Trong thực tế, đôi khi có những gói thư viện bạn đã cài đặt nhưng sau đó bạn không sử dụng đến trong dự án, bạn có thể gỡ bỏ cài đặt một gói thông qua câu lệnh:
npm uninstall package_name
Các package thư viện đưa vào project của bạn có thể liên tục có update mới. Thực hiện npm update
để thực hiện cập nhật tất cả các gói liên quan. Nếu bạn chỉ muốn cập nhật một gói cụ thể có thể sử dụng cú pháp:
npm update package_name
Các câu lệnh này có thể sử dụng flag -g
để thực hiện cập nhật cho các gói được cài đặt global.
Kiểm tra các gói cài đặt
Để kiểm tra các gói đã được cài đặt thông qua npm sử dụng câu lệnh npm ls
, nếu kiểm tra các cài đặt global thêm tham số -g
npm ls npm ls -g
Package.json
Để quản lý các gói cài đặt cục bộ bằng npm thì cách tốt nhất là thông qua file package.json, chính là file nằm trong thư mục gốc của project. File JSON này chứa các nội dung:
- Các gói thư viện lập trình mà project sử dụng.
- Cho phép xác định phiên bản chính xác của các gói thư viện lập trình được sử dụng.
- Các gói bạn xây dựng có thể chia sẻ dễ dàng với các lập trình viên khác trên toàn cầu thông qua npm.
Lệnh npm init –yes
sẽ tạo ra file package.json mẫu.
npm init --yes Wrote to /home/topdev/random-keygen/package.json: { "name": "random-keygen", "description": "", "version": "1.0.4", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/vietdien2005/random-keygen.git" }, "keywords": [], "author": "Đàm Việt", "license": "ISC", "bugs": { "url": "https://github.com/vietdien2005/random-keygen/issues" }, "homepage": "https://github.com/vietdien2005/random-keygen" }
Có một số các thuộc tính trong package.json, chúng ta cùng điểm qua:
- name: tên gói thư viện
- version: phiên bản gói
- description: phần mô tả về gói thư viện
- homepage: trang chủ của gói
- author: tác giả
- contributors: tên người đóng góp cho package
- dependencies: danh sách các gói phụ thuộc, tự động được cài theo.
- repository: loại repository và url của package, thông thường là git (Xem thêm Git là gì?)
- main: index.js
- keywords: các từ khóa
Ví dụ sử dụng file package.json, project sử dụng package random-keygen
với phiên bản là 1.0.4 cho production và sử dụng gói develop-random-keygen
trong quá trình develop là 1.0.2, file package.json sẽ như sau:
{ "name": "random-keygen", "version": "1.0.4", "dependencies": { "random-keygen": "^1.0.4" }, "devDependencies" : { "develop-random-keygen": "^1.0.2" } }
Nếu muốn thêm các entry vào thuộc tính dependencies khi cài đặt gói sử dụng thêm flag –save
, còn với thuộc tính devDependencies thì sử dụng flag –save-dev
.
Có thể bạn muốn xem thêm:
- Sử dụng npm như một Build Tool
- So sánh Yarn và npm: Ai là nhà vô địch?
- 8 npm mẹo cực hay để gây ấn tượng với đồng nghiệp
Xem thêm việc làm JavaScript Developer trên TopDev
- N Nâng tầm kỹ năng JavaScript: 6 khái niệm không thể bỏ qua
- J Jest là gì? Hướng dẫn thực hiện kiểm thử JavaScript với Jest
- S Strict Mode trong JavaScript – Sử dụng Strict Mode như thế nào cho tốt?
- T Tìm hiểu về Intl.RelativeTimeFormat trong JavaScript
- K Kinh nghiệm xử lý câu lệnh điều kiện trong JavaScript
- C Các cách xóa một property của Object trong Javascript
- K Kinh nghiệm truy xuất giá trị trong object lồng nhau trong Javascript
- H Hằng số và tính bất biến trong JavaScript
- T Thư viện Driver.js tạo hướng dẫn tương tác trang web
- C Các tips hiệu quả nhất khi làm việc với Javascript