Bài viết này sẽ đóng vai trò là một hướng dẫn thiết yếu tất cả trong một cho sidekick yêu thích của Node.js: npm. Node.js đã làm mưa làm gió trên toàn thế giới kể từ năm 2009. Hàng trăm nghìn hệ thống đã được xây dựng bằng Node.js, khiến cộng đồng nhà phát triển cho rằng “JavaScript đang ăn mòn phần mềm”. Một trong những

Bạn đang xem: npm làm được gì

Bài viết này sẽ đóng vai trò là một hướng dẫn thiết yếu tất cả trong một cho sidekick yêu thích của Node.js : npm.

Node.js đã làm mưa làm gió trên thế giới kể từ năm 2009. Hàng trăm nghìn hệ thống đã được xây dựng bằng Node.js, khiến cộng đồng nhà phát triển tuyên bố rằng “JavaScript đang ăn mòn phần mềm”.

Một trong những yếu tố chính làm nên thành công của Node là npm – trình quản lý gói phổ biến của nó, cho phép các nhà phát triển JavaScript chia sẻ các gói hữu ích như lodash moment một cách nhanh chóng và dễ dàng.

Tính đến thời điểm tôi viết bài này, npm đã tạo điều kiện xuất bản hơn 1,3 triệu gói với tỷ lệ tải xuống hàng tuần hơn 16 tỷ! Những con số này thật tuyệt vời đối với bất kỳ công cụ phần mềm nào. Vậy bây giờ chúng ta hãy nói về npm chính xác là gì.

NPM là gì?

NPM – hay “Node Package Manager” – là gói mặc định trình quản lý thời gian chạy của JavaScript Node.js.

Nó còn được gọi là “Ninja Pumpkin Mutants”, “Phi lợi nhuận Pizza Makers” và một loạt các tên ngẫu nhiên khác mà bạn có thể khám phá và có thể đóng góp tại npm-expansions .

NPM bao gồm hai phần chính:

  • công cụ CLI (giao diện dòng lệnh) để xuất bản và tải xuống các gói và
  • một kho lưu trữ trực tuyến lưu trữ các gói JavaScript

Để có giải thích trực quan hơn, chúng ta có thể coi kho lưu trữ npmjs.com là trung tâm thực hiện tiếp nhận gói hàng hóa từ người bán (tác giả gói npm) và phân phối những hàng hóa này cho người mua (người dùng gói npm).

Để tạo điều kiện thuận lợi cho quá trình này, trung tâm thực hiện npmjs.com sử dụng một đội quân gồm những chú gấu túi chăm chỉ (npm CLI), những người sẽ được chỉ định làm trợ lý riêng cho từng cá nhân npmjs. com khách hàng. Vì vậy, các phần phụ thuộc được phân phối cho các nhà phát triển JavaScript như sau:

bellyat-install

và quá trình xuất bản một gói cho các thành viên JS của bạn sẽ giống như sau:

 Pandaat-Publishing

Hãy xem cách đội quân gấu túi này hỗ trợ các nhà phát triển muốn sử dụng các gói JavaScript trong các dự án của họ. Chúng ta cũng sẽ xem cách họ giúp các thuật sĩ nguồn mở đưa các thư viện thú vị của họ ra thế giới.

package.json

Mọi dự án trong JavaScript – cho dù đó là Node.js hay một ứng dụng trình duyệt – có thể được xác định phạm vi như một gói npm với thông tin gói riêng và công việc package.json của nó để mô tả dự án.

Chúng ta có thể coi package.json như những nhãn được đóng trên những hộp npm tốt mà đội quân Người đánh bom của chúng ta mang đi khắp nơi.

package.json sẽ được tạo khi npm init được chạy để khởi chạy dự án JavaScript / Node.js, với siêu dữ liệu cơ bản do nhà phát triển cung cấp:

  • name : tên thư viện / dự án JavaScript của bạn
  • phiên bản : phiên bản dự án của bạn. Thông thường, đối với việc phát triển ứng dụng, lĩnh vực này thường bị bỏ qua vì không có nhu cầu rõ ràng về việc tạo phiên bản cho các thủ thư nguồn mở. Tuy nhiên, nó có thể hữu ích khi là nguồn của phiên bản triển khai.
  • description : mô tả của dự án
  • giấy phép : giấy phép của dự án

npm scripts

package.json cũng hỗ trợ scripts > thuộc tính có thể được xác định để chạy các công cụ dòng lệnh được cài đặt trong ngữ cảnh cục bộ của dự án. Ví dụ: phần scripts của dự án npm có thể trông giống như sau:

  {
  "script": {
    "xây dựng": "tsc",
    "format": "beautiful --write ** / *. ts",
    "format-check": "xinh hơn --check ** / *. ts",
    "lint": "eslint src / ** / *. ts",
    "pack": "ncc build",
    "test": "jest",
    "all": "npm run build & amp; & amp; npm run format & amp; & amp; npm run lint & amp; & amp; npm run pack & amp; & amp; npm test"
  }
}
 

với eslint , better , ncc , jest không nhất thiết phải được cài đặt dưới dạng tệp thực thi toàn cục nhưng là tệp cục bộ đối với dự án của bạn bên trong node_modules / .bin /.

Sự ra đời gần đây của npx cho phép chúng tôi chạy các lệnh node_modules trong phạm vi dự án này giống như một chương trình được cài đặt toàn cầu bằng tiền tố < code> npx … (tức là npx đẹp hơn --write ** / *. ts ).

Xem Thêm  Crysis 1 fshare -14 Bước chi tiết nhất + Link tải mới nhất

phụ thuộc vs devDependencies

Hai thứ này có dạng đối tượng khóa-giá trị với tên của thư viện npm làm khóa và phiên bản được định dạng ngữ nghĩa của chúng là giá trị. Đây là ví dụ từ mẫu Hành động TypeScript của Github :

  {
  "phụ thuộc": {
    "@ action / core": "^ 1.2.3",
    "@ action / github": "^ 2.1.1"
  },
  "devDependencies": {
    "@ type / jest": "^ 25.1.4",
    "@ loại / nút": "^ 13.9.0",
    "@ stylescript-eslint / parser": "^ 2.22.0",
    "@ zeit / ncc": "^ 0,21.1",
    "eslint": "^ 6.8.0",
    "eslint-plugin-github": "^ 3.4.1",
    "eslint-plugin-jest": "^ 23.8.2",
    "jest": "^ 25.1.0",
    "jest-xiếc": "^ 25.1.0",
    "js-yaml": "^ 3.13.1",
    "đẹp hơn": "^ 1.19.1",
    "ts-jest": "^ 25.2.1",
    "typecript": "^ 3.8.3"
  }
}
 

Các phần phụ thuộc này được cài đặt thông qua lệnh npm install với --save --save-dev cờ. Chúng được sử dụng cho các môi trường sản xuất và phát triển / thử nghiệm tương ứng. Chúng ta sẽ đi sâu hơn vào việc cài đặt các gói này trong phần tiếp theo.

Trong khi đó, điều quan trọng là phải hiểu các dấu hiệu có thể xảy ra trước các phiên bản ngữ nghĩa (giả sử bạn đã đọc mô hình major.minor.patch của semver ):

  • ^ : bản phát hành nhỏ mới nhất. Ví dụ: thông số kỹ thuật ^ 1.0.4 có thể cài đặt phiên bản 1.3.0 nếu đó là phiên bản phụ mới nhất trong sê-ri chính 1 .
  • ~ : bản vá mới nhất. Theo cách tương tự như ^ cho các bản phát hành nhỏ, đặc tả ~ 1.0.4 có thể cài đặt phiên bản 1.0.7 nếu đó là phiên bản nhỏ mới nhất trong 1.0 series nhỏ.

Tất cả các phiên bản gói chính xác này sẽ được ghi lại trong tệp package-lock.json đã tạo.

package-lock.json

Tệp này mô tả phiên bản chính xác của các phần phụ thuộc được sử dụng trong một dự án JavaScript npm. Nếu package.json là nhãn mô tả chung, thì package-lock.json là bảng thành phần.

Và cũng giống như cách chúng ta thường không đọc bảng thành phần của sản phẩm (trừ khi bạn đã quá chán hoặc không cần biết), package-lock.json không có nghĩa là được các nhà phát triển đọc từng dòng một (trừ khi chúng tôi cố gắng giải quyết các vấn đề "hoạt động trong máy của tôi").

package-lock.json thường được tạo bởi lệnh npm install và cũng được đọc bởi công cụ NPM CLI của chúng tôi để đảm bảo tái tạo môi trường xây dựng cho dự án với npm ci .

Cách ra lệnh hiệu quả cho NPM Wombats với tư cách là "người mua"

Như được suy ra từ 1,3 triệu gói đã xuất bản so với 16 tỷ lượt tải xuống được đề cập trước đó, phần lớn người dùng npm sử dụng npm theo hướng này. Vì vậy, thật tốt khi biết cách sử dụng công cụ mạnh mẽ này.

npm install

Đây là lệnh được sử dụng phổ biến nhất khi chúng tôi phát triển JavaScript / Node.js ứng dụng ngày nay.

Theo mặc định, npm install & lt; package-name & gt; sẽ cài đặt phiên bản mới nhất của gói có ký hiệu phiên bản ^ . Một npm install trong ngữ cảnh của một dự án npm sẽ tải các gói vào thư mục node_modules của dự án theo thông số kỹ thuật của package.json , nâng cấp phiên bản gói (và lần lượt tái tạo package-lock.json ) ở bất cứ đâu có thể dựa trên sự khớp phiên bản ^ ~ .

Bạn có thể chỉ định cờ chung -g nếu bạn muốn cài đặt một gói trong ngữ cảnh chung mà bạn có thể sử dụng ở mọi nơi trên máy của mình (điều này phổ biến đối với công cụ dòng lệnh các gói như máy chủ trực tiếp ).

npm đã làm cho việc cài đặt các gói JavaScript trở nên dễ dàng đến mức lệnh này thường được sử dụng không chính xác. Điều này dẫn đến việc npm trở thành trò đùa của rất nhiều lập trình viên như sau:

npm -okes

Đây là lúc cờ --production được giải cứu ! Trong phần trước, chúng ta đã thảo luận về dependencies devDependencies được sử dụng trong môi trường sản xuất và phát triển / thử nghiệm tương ứng. Cờ --production này là cách tạo ra sự khác biệt trong node_modules .

Bằng cách gắn cờ này vào lệnh npm install , chúng tôi sẽ chỉ cài đặt các gói từ các gói phụ thuộc , do đó giảm đáng kể kích thước của node_modules của chúng tôi thành bất kỳ kích thước nào thực sự cần thiết để các ứng dụng của chúng tôi hoạt động.

Cũng giống như việc các tuyển trạch viên nam và nữ, chúng tôi không mang theo dụng cụ vắt chanh đến gian hàng nước chanh của mình, chúng tôi không nên đưa devDependencies vào sản xuất!

npm ci

Vì vậy, nếu npm install --production là tối ưu cho môi trường sản xuất, thì phải có lệnh tối ưu cho sự phát triển cục bộ của tôi, đang thử nghiệm thành lập?

Câu trả lời là npm ci .

Giống như cách nếu package-lock.json chưa tồn tại trong dự án, nó được tạo bất cứ khi nào npm install được gọi, npm ci sử dụng tệp này để tải xuống phiên bản chính xác của từng gói riêng lẻ mà dự án phụ thuộc vào.

Đây là cách chúng tôi có thể đảm bảo rằng bối cảnh dự án của chúng tôi vẫn hoàn toàn giống nhau trên các máy khác nhau, cho dù đó là máy tính xách tay của chúng tôi được sử dụng để phát triển hay môi trường xây dựng CI (Tích hợp liên tục) như Github Actions.

npm Audit

Với số lượng lớn các gói đã được xuất bản và có thể dễ dàng cài đặt, các gói npm rất dễ bị tác giả xấu có ý đồ xấu như này .

Nhận thấy rằng có vấn đề trong hệ sinh thái, tổ chức npm.js đã đưa ra ý tưởng về kiểm tra npm . Họ duy trì một danh sách các lỗ hổng bảo mật mà các nhà phát triển có thể kiểm tra sự phụ thuộc của họ bằng cách sử dụng lệnh npm Audit .

npm Audit cung cấp cho nhà phát triển thông tin về các lỗ hổng bảo mật và liệu có các phiên bản có biện pháp khắc phục để nâng cấp lên hay không. Ví dụ:

npm-Audit-result

Nếu các biện pháp khắc phục có sẵn trong bản nâng cấp phiên bản không vi phạm tiếp theo, bạn có thể sử dụng npm Audit fix để nâng cấp tự động các phiên bản của phần phụ thuộc bị ảnh hưởng.

Cách chỉ huy hiệu quả những con gấu túi NPM là "người bán"

Chúng ta đã xem qua cách sử dụng công cụ NPM CLI với tư cách là người tiêu dùng, nhưng còn việc sử dụng hiệu quả công cụ này với tư cách là tác giả (và có khả năng trở thành trình hướng dẫn mã nguồn mở JavaScript?) Thì sao?

npm Publishing

Gửi một gói đến trung tâm thực hiện npmjs.com của chúng tôi rất dễ dàng vì chúng tôi chỉ cần chạy npm Publishing . Phần khó khăn, không cụ thể đối với tác giả gói npm, là xác định phiên bản của gói.

Quy tắc chung theo semver.org :

  1. Phiên bản CHÍNH khi bạn thực hiện các thay đổi API không tương thích,
  2. Phiên bản MINOR khi bạn thêm chức năng theo cách tương thích ngược và
  3. Phiên bản PATCH khi bạn thực hiện các bản sửa lỗi tương thích ngược.

Điều quan trọng hơn là tuân theo quy tắc trên khi xuất bản các gói của bạn để đảm bảo rằng bạn không vi phạm mã của bất kỳ ai vì phiên bản mặc định khớp trong npm là ^ (hay còn gọi là phiên bản nhỏ tiếp theo).

❤️ npm ❤️ JavaScript ❤️ Node.js ❤️

< p> Đó là tất cả những gì chúng ta cần biết để bắt đầu sử dụng npm hiệu quả và chỉ huy đội quân gấu túi đáng yêu của mình!

Pandaats


Xem thêm những thông tin liên quan đến chủ đề npm làm gì

#1 WHY NODE ? NODE.JS LÀ CÁI QUÁI GÌ | Node.JS Cơ Bản Cho Beginners Từ A Đến Z

alt

  • Tác giả: Hỏi Dân IT
  • Ngày đăng: 2021-09-21
  • Đánh giá: 4 ⭐ ( 9540 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Nghe nói Node.JS hay lắm, nó viết được cả clientside lẫn serverside (từ trình duyệt cho tới máy chủ server), lại còn viết = Javascript, chạy đa tiến trình, nhanh như điên luôn. Đấy là những điều mình biết, biết về bề nổi của cái 'platform này'.
    Trong video này, mình sẽ giúp các bạn trả lời câu hỏi, HỌC NODE.JS LÀ HỌC CÁI GÌ ?
    Chi tiết và cụ thể, các bạn cùng theo dõi video này nhé ❤

    🚀 Khóa học Free FullStack SERN (SQL, Express, React, Node.js): https://www.youtube.com/watch?v=21tjOW8BvB4&list=PLncHg6Kn2JT6E38Z3kit9Hnif1xC_9VqI

    🐱‍🏍 Khóa Học REACT SIÊU CƠ BẢN: https://www.youtube.com/watch?v=ONnlXF4mpIg&list=PLncHg6Kn2JT4C0enPGQPK7ZIlEoZ1ZvRy&index=1

    🐱‍🚀 Khóa Học Free Javascript siêu cơ bản từ A đến Z: https://www.youtube.com/watch?v=zfLO1yE40JI&list=PLncHg6Kn2JT5dfQqpVtfNYvv3EBVHHVKo&index=2

    👉 Tải project từ Github của mình: Coming soon

    👉 Nội dung khóa học: https://docs.google.com/document/d/1YPB5zuENWt-uCRSx4c2zYXyxV0lohZxTYHkfT9TSAAY/edit?usp=sharing

    👉 Xem full khóa học này tại đây: https://www.youtube.com/watch?v=v4pgci2s980&list=PLncHg6Kn2JT4smWdJceM0bDg4YUF3yqLu&index=2

    -----
    🌹Bạn nào muốn donate hay mua cho mình cốc cà phê, cái pizza hay chỉ là gói mì tôm hảo hảo, để có thêm động lực làm nhiều video chất lượng, thì các bạn có thể liên hệ qua: 🤩🤩🤩
    1. Patreon của mình : https://www.patreon.com/haryphamdev
    2. Fanpage Facebook Tiếng Việt: https://www.facebook.com/askITwithERIC
    3. Fanpage Facebook Tiếng Anh: https://www.facebook.com/haryphamdev

    😁Mình có 1 channel khác (Tiếng Anh, tên là haryphamdev), nên là có 2 Fanpage Facebook: Link channel Tiếng Anh: https://www.youtube.com/channel/UCHqJxLo7mKam9GKqqwr2wfA
    -----

    ------------------------------------ IMPORTANT -----------------------------
    🚀 Learn by doing : Hiện tại, mình đang làm 1 series miễn phí, học và thực hành để trở thành 1 fullstack web developer từ A đến Z. Và để thực hiện được mục tiêu này, khóa học này chính là thứ rất cần thiết dành cho các bạn beginners - Node.JS Basic. (Node.JS cơ bản từ A đến Z)

    1️⃣ Các bạn nhận được gì khi kết thúc khóa học?

    ✔ Các bạn có thể làm chủ công nghệ, cũng như học được, biết được những kiến thức thực tế được sử dụng với thư viện, framework Express.JS (Node.JS Platform)

    ✔ Các bạn hiểu được Node.JS có thể làm những gì, chú trọng vào những kiến thức cơ bản nhưng cốt lõi nhất.
    Phương châm của mình luôn là "chỉ nên học những cái mà các công ty cần", không nên học tràn lan, tỏ ra ta đây cái gì cũng biết, cơ mà bản chất lại không biết (hiểu) gì.

    Các bạn nên nhớ rằng, đối với những người mới bắt đầu, nên đi chậm nhưng mà chắc, không cần code siêu, chỉ cần biết cách 'google search' là được.

    2️⃣ Nội dung khóa học ?
    ✔Mình dự định sẽ làm 1 series hướng dẫn full từ A đến Z những kiến thức căn bản(cốt lõi) của Node.JS cho những bạn chưa biết gì, những người mới bắt đầu dấn thân vào học thư viện (Framework/Platform) Node.JS này.

    ✔Khóa này chính là bước đệm để các bạn có thể chuẩn bị một công cụ cũng như kiến thức cần thiết, từ đó có thể làm những cái to tát hơn, như làm game, app và website thực tế.

    3️⃣ Công nghệ sử dụng ?
    ✔ HTML, CSS và Javascript.
    ✔ Express Framework, MySQL
    ✔ Node.JS Platform

    4️⃣ Lịch trình ra video ?
    Hiện tại, mình đang đi làm fulltime, vì vậy không thể dành 100% thời gian làm video khóa học này được. Tuy nhiên, mình luôn cố gắng để làm video đều đặn và thường xuyên, vì mình nhận được rất nhiều tin nhắn cũng như comment của các bạn, mong muốn được học khóa học này ❤
    👉 Tối thiểu là 1 tuần sẽ có 2 video về khóa học, còn đôi khi mình có nhiều thời gian rảnh thì 1 tuần 7 cái luôn 😁

    👉Các bạn muốn video ra nhanh thì đừng quên Đăng Ký Kênh, Like, Share và Comment bên dưới video để mình có thêm động lực làm video nha. Cảm ơn các bạn nhiều 💕💕💕

    👉 Đây là video thứ tự 1 trong khóa học này

    👉 Các videos này sẽ được cập nhật vào playlist -Tự Học Node.JS Cơ Bản Từ A đến Z Cho Người Mới Bắt Đầu với Hỏi Dân IT: https://www.youtube.com/watch?v=v4pgci2s980&list=PLncHg6Kn2JT4smWdJceM0bDg4YUF3yqLu&index=2

    👉 Các bạn đăng ký kênh, bật thông báo để có thể nhận được những video từ series này một cách sớm nhất nhé ❤

    ------------------------------------ IMPORTANT -----------------------------

    🌎 Tìm mình tại đây:
    1. Facebook Fanpage (Tiếng việt): https://www.facebook.com/askITwithERIC
    2. Facebook Fanpage (Tiếng anh): https://www.facebook.com/haryphamdev
    3. Group trao đổi học tập Facebook: https://www.facebook.com/groups/hoidanit
    4. Github: https://github.com/haryphamdev
    5. Youtube channel: https://www.youtube.com/channel/UCVkBcokjObNZiXavfAE1-fA
    6. Email: haryphamdev@gmail.com

    ĐỪNG QUÊN NHẤN CHUÔNG 🔔 ĐỂ NHẬN CẬP NHẬT VIDEO MỚI NHẤT CŨNG NHƯ ► ĐĂNG KÝ KÊNH! ► https://bit.ly/31P4KhK

    KhoaHocNodeJS nodeJSBasic HoiDanIT

NPM là gì? - Cách sử dụng giúp đạt hiệu quả công việc cao hơn

  • Tác giả: timviec365.vn
  • Đánh giá: 4 ⭐ ( 6201 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Bạn có đang thắc mắc về câu lệnh phổ biến NPM hay không. Nếu có thì bài viết sau sẽ đưa ra câu trả lời ngắn gọn giúp bạn hiểu được cơ bản nhất về “NPM là gì?”.

Cùng Tìm Hiểu Về Npm Là Gì ? Công Dụng Và Cách Thức Hoạt Động Của Npm

  • Tác giả: trifactor.vn
  • Đánh giá: 3 ⭐ ( 9526 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NPM là gì?npm là Node Package Manager đi kèm và hỗ trợ từng bản phát triển của Node, Trong nhiều năm, Node được các lập trình viên JavaScript sử dụng rộng rãi để chia sẻ công cụ, cài đặt nhiều mô-đun khác nhau và quản lý dependency

Npm là gì? Giới thiệu cơ bản cho người mới bắt đầu – Lava

  • Tác giả: lava.com.vn
  • Đánh giá: 3 ⭐ ( 1833 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

npm audit là gì? 10 lệnh npm lập trình viên cần biết!

  • Tác giả: anonystick.com
  • Đánh giá: 3 ⭐ ( 7801 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NPM là gì? NPM là viết tắt của Node Package Manager, nếu bạn là một lập trình viên phát triển web hay node.js thì sẽ trông thấy rất quen thuộc. Hay cách khác là npm là một kho lưu trữ trực tuyến để xuất bản các dự án Node.js mã nguồn mở.

NPM là gì? Sử dụng NPM hiệu quả để đơn giản hóa công việc

  • Tác giả: topdev.vn
  • Đánh giá: 5 ⭐ ( 6422 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NPM là gì? - NPM 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.

NPM là gì? Giới thiệu tổng quan về các thông tin của công cụ

  • Tác giả: timviec365.com
  • Đánh giá: 3 ⭐ ( 7347 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: NPM còn được gọi là Node Package Manager, là một công cụ làm việc với các thư viện có sẵn được tạo bởi lập trình viên. Đọc bài viết để xem tác dụng của NPM nhé.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

By ads_php