🌞

Hướng dẫn tạo một package, publish nó lên npm

Sửa bài viết này

Package là gì, và module là gì

Npm sẽ phân biệt 2 khái niệm packagemodule

Package là một thư mục chứa một gói phần mềm được mô tả bởi file package.json

Module là một thư mục chứa file package.json, chứa một default export, cho phép loading module này bằng require() trong Node

Tạo package

Tạo một thư mục mới, init package npm bằng npm init hoặc npm init -y nếu muốn dùng các thiết đặt mặc định

mkdir my-vui-package && cd my-vui-package
npm init -y

Trỏ vào thư mục này, chúng ta sẽ có file package.json như sau

{
  "name": "my-vui-package",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

File index.js nội dung đại loại sẽ như thế này

"use strict";

module.exports = function my-vui-package(sentence, callback) {

}

Kiểm tra ở local

Trước khi publish nó lên npm, trong ta có thể dùng npm link để kiểm tra dưới local trước. Đại khái npm link sẽ cho phép chúng ta trỏ thư mục package vào thư mục node_modules global. Chúng ta cần thực hiện 2 bước

cd ~/duong-dan-toi-thu-muc/my-vui-package
npm link

Sau đó, trong thư mục sử dụng package

cd ~/duong-dan-toi-thu-muc/project-nao-do
npm link my-vui-package

Bên trong thư mục node_modules bây giờ sẽ như thế này

Publish lên NPM

Trước khi publish lên npm chúng ta phải đăng ký một user trên npm, sau đó login ở dưới máy local

npm login

Có thể kiểm tra npm có biết chúng ta là ai chưa

npm whoami

Mọi thứ đã hoàn tất, để trình làng một package cho bàn dân thiên hạ

npm publish --access public

Nếu đã có một package như vậy trên npm, nó sẽ thông báo lỗi như này

Nếu nhận thông báo thành công, chúng ta có thể chạy ngay lên npm và search sẽ thấy package của chúng ta nằm chình ình trên đó

Ngày nó đó ko muốn cho thiên hạ xài nữa

npm unpublish

Khi cần update lên version mới

npm version <update_type>

Sử dụng thêm thư viện

Nếu cần chuyên nghiệp hơn, chuẩn hóa hơn các bác, sử dụng package np để hỗ trợ thực hiện các bước ở trên

npm i -g np

Muốn sử dụng np chúng ta phải đảm bảo package chúng ta được host trên Github

cần publish ? chạy

np

Trả lời các câu hỏi để đi tiếp

Đọc thêm cách đặt tên version ở đây

Initializing...