NPM là gì? Tại sao NPM lại đi cùng với Node.js

NPM là gì? Tại sao NPM lại đi cùng với Node.js

Tin ngắn hàng ngày dành cho bạn
  • Từ lâu rồi suy nghĩ làm thế nào để tăng sự hiện diện thương hiệu, cũng như người dùng cho blog. Nghĩ đi nghĩ lại thì chỉ có cách chia sẻ lên mạng xã hội hoặc trông chờ họ tìm kiếm, cho đến khi...

    In cái áo này được cái tắc đường khỏi phải lăn tăn, càng đông càng vui vì hàng trăm con mắt nhìn thấy cơ mà 🤓

    (Có tác dụng thật nha 🤭)

    » Xem thêm
  • Một vòng của sự phát triển nhiều dự án khá là thú vị. Tóm tắt lại trong 3 bước: Thấy một cái gì đó phức tạp -> Làm cho nó đơn giản đi -> Thêm thắt tính năng cho đến khi nó phức tạp... -> Quay trở lại vòng lặp mới.

    Tại sao lại như vậy? Để mình lấy 2 ví dụ cho các bạn thấy.

    Markdown ra đời với mục tiêu tạo ra một định dạng văn bản thô "dễ viết, dễ đọc, dễ dàng chuyển thành một dạng gì đó như HTML". Vì thời đó chẳng ai đủ kiên nhẫn mà vừa ngồi viết vừa thêm định dạng cho văn bản hiển thị ở trên web như thế nào. Ấy vậy mà giờ đây người ta đang "nhồi nhét" hoặc tạo ra các biến thể dựa trên markdown để bổ sung thêm nhiều định dạng mới đến mức... chẳng nhớ nổi hết cú pháp.

    React cũng là một ví dụ. Từ thời PHP, việc khát khao tạo ra một cái gì đó tách biệt hẳn giao diện người dùng và phần xử lý logic chính của ứng dụng thành 2 phần riêng biệt cho dễ đọc, dễ viết. Kết quả là các thư viện UI/UX phát triển rất mạnh mẽ, mang lại khả năng tương tác với người dùng rất tốt, còn phần logic ứng dụng thì nằm ở một máy chủ riêng biệt. Bộ đôi Front-end, Back-end cũng từ đấy mà thịnh hành, không thể thiếu anh bồi bàn REST API. Ấy vậy mà giờ đây React trông cũng không khác biệt gì so với PHP là mấy, kéo theo là cả Vue, Svelte... lại cùng quy tất cả về một mối.

    Cơ mà không phải vòng lặp là xấu, ngược lại vòng lặp này mang tính tiến hoá nhiều hơn là "cải lùi". Nhiều khi lại tạo ra được cái hay hơi cái cũ thế là người ta lại dựa trên cái hay đó để tiếp tục lặp. Nói cách khác là chắc lọc tinh hoa từng tí một tí một á 😁

    » Xem thêm
  • Song song với các dự án chính thức thì thi thoảng mình vẫn thấy các dự án "bên lề" nhằm tối ưu hoặc cải tiến ngôn ngữ theo khía cạnh nào đó. Ví dụ nature-lang/nature là một dự án hướng tới cải tiến Go, mang lại một số thay đổi nhằm giúp cho việc sử dụng Go trở nên thân thiện hơn.

    Nhìn lại mới thấy hao hao JavaScript 😆

    » Xem thêm

Vấn đề

NPM (Node Package Manager) là chương trình quản lý thư viện (package manager) ngầm định trong môi trường Node.js. Nó bao gồm một trình gọi dòng lệnh (Command Line) từ máy khách Client với tên gọi là npm, và cơ sở dữ liệu trực tuyến chứa các gói public và private còn được gọi là npm registry. Npm registry được gọi từ npm client và trên web browser.

Khi cài đặt Node.js, chúng ta sẽ được "khuyến mãi" thêm npm.

Kiểm tra phiên bản npm hiện tại.

npm -v
# 6.14.4

Mỗi ngày có hàng trăm, hàng nghìn dự án được tải lên đây, bao gồm thư viện hay framework mới. Điều đó đồng nghĩa với việc hầu hết những thứ bạn cần đều có trên này.

Sử dụng NPM

Ví dụ bạn cần một thư viện có thể chuyển tiếng việt có dấu về không dấu, thay vì bạn phải tự viết thì trên npm đã có sẵn một gói tên là vn-remove-accents cung cấp cho bạn tính năng đấy, chỉ việc kéo về dùng thôi.

# tạo thư mục
mkdir remove-accents

# di chuyển vào thư mục
cd remove-accents

# cài gói vn-remove-accents
npm i vn-remove-accents

Tạo một file index.js trong thư mục remove-accents, nội dung:

const removeAccents = require('vn-remove-accents');
const str = 'Blog chia sẻ lập trình kiến thức javascript';
console.log(removeAccents(str)) // Blog chia se lap trinh kien thuc javascript

Hầu hết các gói trên npm đều có hướng dẫn cài đặt và hướng dẫn sử dụng đi kèm nên bạn không cần phải quá lo lắng về cách sử dụng các gói như thế nào. Việc bạn cần là xác định đúng gói nào hỗ trợ giải quyết vấn đề hiện tại (Có thể search google mô tả nhu cầu kèm theo từ npm ở cuối sẽ ra rất nhiều gợi ý. Ví dụ: vietnam remove accents npm).

Quay trở lại thư mục gốc remove-accents đã tạo ở trên, lúc này sẽ thấy xuất hiện một tệp tin package.json được tạo ra bao gồm một số thông tin kể cả gói vn-remove-accents được kéo về và một thư mục node_modules.

Thì ở đây thư mục node_modules sẽ chứa các gói mà bạn đã chạy lệnh install như gói vn-remove-accents trên.
Còn file package.json đóng vai trò là tệp quản lý phụ thuộc. Tức là khi bạn chạy lệnh npm install thì nó sẽ cài tất cả các gói có trong file này.

npm là một công cụ tuyệt vời cho node.js, nhờ npm ta không phải lang thang trên mạng để tìm những gói từ nhiều nguồn khác nhau, cũng không cần quá lo lắng khi tải một project trên mạng về mà không biết nó dùng những gói phụ thuộc nào. Tất cả đã có file package.json.

Tuy nhiên không phải tất cả các gói trên npm là đáng tin cậy. Hãy thận trọng khi cài chúng.

Cao cấp
Hello

Tôi & khao khát "chơi chữ"

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (1)

Nội dung bình luận...
Avatar
Xuân Hoài Tống4 năm trước

npm là một công cụ tuyệt vời cho node.js, nhờ npm ta không phải lang thang trên mạng để tìm những gói từ nhiều nguồn khác nhau, cũng không cần quá lo lắng khi tải một project trên mạng về mà không biết nó dùng những gói phụ thuộc nào. Tất cả đã có file package.json

Trả lời
Avatar
Xuân Hoài Tống4 năm trước

Bạn nói hay quá. Bạn gỡ bình luận đi

Avatar
Hoai Tong Xuan4 năm trước

Vẫn là tôi nhưng đến từ Github

Avatar
Gió4 năm trước

quay tay à bạn ?