Giới thiệu về trình quản lý gói npm

Hướng dẫn nhanh về npm, chìa khóa của trình quản lý gói mạnh mẽ cho sự thành công của Node.js. Vào tháng 1 năm 2017, hơn 350000 gói đã được báo cáo đã được liệt kê trong sổ đăng ký npm, khiến nó trở thành kho lưu trữ mã ngôn ngữ đơn lẻ lớn nhất trên Trái đất và bạn có thể chắc chắn rằng có một gói cho (gần như!) Mọi thứ.

Giới thiệu về npm

npmlà trình quản lý gói tiêu chuẩn cho Node.js.

Vào tháng 1 năm 2017, hơn 350000 gói đã được báo cáo đã được liệt kê trong sổ đăng ký npm, khiến nó trở thành kho lưu trữ mã ngôn ngữ đơn lẻ lớn nhất trên Trái đất và bạn có thể chắc chắn rằng có một gói cho (gần như!) Mọi thứ.

Nó bắt đầu như một cách để tải xuống và quản lý các phần phụ thuộc củaNode.jsnhưng nó đã trở thành một công cụ cũng được sử dụng trong giao diện người dùngJavaScript.

Có rất nhiều thứ mànpmlàm.

Sợilà một thay thế cho npm. Hãy chắc chắn rằng bạn cũng kiểm tra nó.

Cài đặt

npmđược cài đặt khi bạn cài đặt Node.js. Hướng tớihttps://nodejs.orgvà cài đặt Node, nếu bạn chưa cài đặt nó trên hệ thống của mình.

Cách sử dụng npm

npmquản lý tải xuống các phụ thuộc của dự án của bạn.

Cài đặt tất cả các phụ thuộc

Nếu một dự án cópackages.jsontệp, bằng cách chạy

npm install

nó sẽ cài đặt mọi thứ mà dự án cần, trongnode_modulesthư mục, tạo nó nếu nó chưa tồn tại.

Cài đặt một gói duy nhất

Bạn cũng có thể cài đặt một gói cụ thể bằng cách chạy

npm install <package-name>

Thường thì bạn sẽ thấy nhiều cờ hơn được thêm vào lệnh này:

  • --savecài đặt và thêm mục vàopackage.jsontập tinsự phụ thuộc(mặc định kể từ npm 5)
  • --save-devcài đặt và thêm mục vàopackage.jsontập tindevDependencies

Sự khác biệt chủ yếu là devDependencies thường là các công cụ phát triển, giống như một thư viện thử nghiệm, trong khidependenciesđi kèm với ứng dụng đang được sản xuất.

Cập nhật các gói

Việc cập nhật cũng được thực hiện dễ dàng bằng cách chạy

npm update

npm will check all packages for a newer version that satisfies your versioning constraints.

You can specify a single package to update as well:

npm update <package-name>

Versioning

In addition to plain downloads, npm also manages versioning, so you can specify any specific version of a package, or require a version higher or lower than what you need.

Many times you’ll find that a library is only compatible with a major release of another library.

Or a bug in the latest release of a lib, still unfixed, is causing an issue.

Specifying an explicit version of a library also helps to keep everyone on the same exact version of a package, so that the whole team runs the same version until the package.json file is updated.

In all those cases, versioning helps a lot, and npm follows the semantic versioning (semver) standard.

Running Tasks

The package.json file supports a format for specifying command line tasks that can be run by using

npm run <task-name>

For example:

{
  "scripts": {
    "start-dev": "node lib/server-development",
    "start": "node lib/server-production"
  },
}

It’s very common to use this feature to run Webpack:

{
  "scripts": {
    "watch": "webpack --watch --progress --colors --config webpack.conf.js",
    "dev": "webpack --progress --colors --config webpack.conf.js",
    "prod": "NODE_ENV=production webpack -p --config webpack.conf.js",
  },
}

So instead of typing those long commands, which are easy to forget or mistype, you can run

$ npm run watch
$ npm run dev
$ npm run prod  

Download my free Node.js Handbook


More node tutorials: