Cơ bản sử dụng npm

Rate this post

npm giờ đã trở thành câu lệnh quen thuộc khi bạn làm quen với NodeJS. Với những ai chưa từng sử dụng, Code Tốt xin hướng dẫn cách bạn làm quen và hiểu cơ bản về npm nhé.

npm là gì?

Hãy tưởng tượng, bạn cần cài đặt 15 scripts từ các thư viện khác nhau. Nếu không có npm, điều đó tương đương với việc bạn phải tải về source của 15 thư viện, đặt nó vào đâu đó và include chúng vào trong source của bạn.

npm sẽ giúp bạn thực hiện điều này đơn giản hơn rất nhiều: các thư viện sẽ 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.

npm giúp quản lý các package Javascript tốt hơn

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, Grunt, Duo, Express, Ember, Stylux… Với npm, bạn còn có nhiều tool thú vị để minify code và giảm thời gian làm những công việc liên quan tới Code Standard.

Cài đặt npm

npm có sẵn khi bạn tải NodeJS về. Nếu bạn chưa cài NodeJS và đang sử dụng Mac OS X, hãy nghía qua cách cài đặt nvm để biết cách cài nhiều version NodeJS giúp thuận tiện hơn sau này nhé.

Sau khi cài đặt xong thì bạn có thể kiểm tra xem version của npm bằng câu lệnh:

npm -v

Cài đặt các package trong npm

Tuỳ theo thư viện mà bạn sử dụng, chúng ta có thể cài đặt local (tức chỉ hiện diện trong thư mục của project hiện tại) hay global (tức là cài đặt cố định trong máy, bạn gọi theo dòng lệnh, ví dụ gulp là nó chạy). Mặc định thì các package khi cài đặt đều sẽ là cài trên project của bạn thôi.

Bắt đầu một project mới

Khi bạn có 1 project trắng và chưa có gì, để bắt đầu bạn gõ lệnh:

npm init

Khi đó, terminal sẽ hiện ra một số câu hỏi về thông tin project, ví dụ tên project, version, git repository,.. Bạn có thể nhấn Enter để bỏ qua cái nào mình không cần thiết nhập.

Sau khi hoàn tất, bạn sẽ thấy file package.json được tạo ra trong thư mục. File này hiện tại mới chỉ chứa thông tin project của bạn thôi, còn chưa có package nào đâu nhé.

Xem hướng dẫn chi tiết về npm init ở đây.

Cài đặt package global

Có rất nhiều package cần chạy ở dạng thức độc lập, tức là command sẽ bắt đầu bằng đúng tên của package, chẳng hạn như ta thường thấy gulp hay grunt. Đó là bởi đây là các package được cài đặt global, và yêu cầu trên máy phải cài global rồi đấy nhé.

Ta chỉ cần chạy câu lệnh này một lần duy nhất trên mỗi máy thôi:

npm install -g gulp

-g ở đây là global, tức là sau khi cài đặt thì bạn có thể sử dụng nó như một command độc lập.

Các package như vậy thông thường yêu cầu thêm 1 file setting trong project, chẳng hạn GulpJS sẽ yêu cầu file gulpfile.js nằm trong project để xác định các task gì nó sẽ thực thi. Tương tự, GruntJS cũng cần file Gruntfile.js để có thể sử dụng.

Xem thêm thông tin về cài đặt package global ở đây.

Mẹo: Bạn có thể quan sát một project có chứa gulpfile.js hay gruntfile.js để xem nó đang sử dụng công cụ gì khi chạy task runner tự động.

Cài đặt các package trong local project

Khi bạn muốn các package xuất hiện chỉ trong project của mình, ta thực hiện lệnh cài đặt, và sau đó các package sẽ có thư mục của riêng nó ở trong thư mục node_modules.

Nếu bạn không có file package.json, khi chạy lệnh cài đặt, npm sẽ lấy version mới nhất của package trên npmjs.com.

Cú pháp đầy đủ: npm install, nhưng ta có thể dùng alias npm i.

Các cú pháp cài đặt và cắt nghĩa từng trường hợp cụ thể:

Trường hợp 1:

npm i lodash gulp-autoprefixer --save-dev

Đây là khi bạn cài đặt các package (có thể viết nhiều package sau npm install) vào trong devDependencies.

Trường hợp 2:

npm i flickity -P

Trường hợp này sẽ cài thư viện vào dependencies , thường là các thư viện bên thứ ba nhưng không phải workflow (tức là không tham gia vào quá trình chỉnh sửa code, minify, code standard,…), chẳng hạn như các thư viện slider flickity, lodash, js-cookie, @vimeo/player,…

Trường hợp 3:

npm i es6-promise

Trường hợp này chỉ nên xảy ra khi trên máy tính của bạn chạy NodeJS thấy báo thiếu module (có thể trên Git ai đó đã cài 1 module trong package.json, nhưng trên máy bạn chưa có).

Trường hợp 4:

npm i @terinjokes/gulp-uglify -D

Khi bạn có dấu “@” thì npm mặc định sẽ hiểu bạn đang cài đặt 1 package từ Github của user terinjokes với tên package là gulp-uglify chẳng hạn. Rất hữu ích nếu package đó chỉ có trên Github mà không có trên npmjs.com.

Trường hợp 5:

npm i gitlab:bmedini/gulp-sonar-js -D

Đây là khi bạn cài 1 thư viện từ Gitlab.

Trường hợp 6:

npm i [email protected]

Đây là khi bạn muốn cài đặt 1 version cụ thể. Có thể version mới nhất của thư viện xung đột với project của bạn chẳng hạn.

Đọc các cách cài đặt  và nhiều thứ bạn có thể làm hơn tại đây.

Kết luận

Trong bài viết này, ta đã cùng tìm hiểu cách sử dụng npm để sử dụng trên project của bạn. Đừng quên nếu bạn thử và sai, ta có thể bắt đầu lại bằng cách xoá thư mục node_modules và file package.json để cài đặt lại. npm sẽ trở thành người bạn quen thuộc của mỗi project bạn làm sớm thôi!

Viết một bình luận


Chuyên gia về Web
Bạn muốn làm việc với dịch vụ website do chúng tôi triển khai?
Gọi tư vấn 0982.90.4343
Chuyên gia về Web
Bài viết liên quan

07/04/2024

PHP: Format date dd/mm/yyyy và so sánh với Date hiện tại
Một vấn đề hay gặp trong quá trình xử lý PHP datetime là tình huống format date từ định dạng...

02/01/2024

Fix lỗi npm không thể cài các package devDependencies
Khi cài đặt dự án,  có lúc bạn sẽ cài mãi cũng không đủ các package npm, đặc biệt là...
Gọi file PHP trong WordPress

19/09/2023

Cài đặt và sử dụng WP-CLI trên môi trường Linux
Trên một số môi trường Hosting có thể cung cấp SSH hoặc Terminal access, song không có sẵn WP-CLI để...
Import database MySQL lớn trên môi trường Docker

06/08/2023

Import database MySQL lớn trên môi trường Docker
Mình sử dụng EasyPanel để quản lý các Docker và build môi trường app. Nay gặp tình huống phải import...