paint-brush
Cách tạo và xuất bản gói NPM riêng tư đầu tiên của bạntừ tác giả@yuraabharian
8,388 lượt đọc
8,388 lượt đọc

Cách tạo và xuất bản gói NPM riêng tư đầu tiên của bạn

từ tác giả Yura Abharian1m2022/07/09
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Trong bài viết này, tôi muốn giới thiệu cách chúng ta có thể dễ dàng tạo gói npm riêng tư đầu tiên của mình. Với các gói npm riêng tư, bạn có thể lưu trữ mã chỉ hiển thị cho bạn và những người có quyền truy cập. Chúng ta sẽ nói thêm về nó. Chúng tôi sẽ tạo và xuất bản một gói riêng tư trên GitHub, vì vậy hãy đảm bảo rằng bạn đã làm quen với các điều kiện tiên quyết trước khi bắt đầu bài viết này. Chúng ta sẽ nói về cách sử dụng GitHub Actions để quản lý và sử dụng mã riêng tư cùng với mã công khai.

Company Mentioned

Mention Thumbnail
featured image - Cách tạo và xuất bản gói NPM riêng tư đầu tiên của bạn
Yura Abharian HackerNoon profile picture

Trong bài viết này, tôi muốn giới thiệu cách chúng ta có thể dễ dàng tạo gói npm riêng tư đầu tiên của mình.


Chúng tôi sẽ tạo và xuất bản một gói riêng tư trên GitHub , vì vậy hãy đảm bảo rằng bạn đã làm quen với các điều kiện tiên quyết trước khi bắt đầu bài viết này. Vậy hãy bắt đầu.


Điều kiện tiên quyết:



Gói npm riêng tư là gì và nó có thể được sử dụng ở đâu?


  • Với các gói npm riêng tư, bạn có thể lưu trữ mã chỉ hiển thị cho bạn và những người có quyền truy cập, cho phép bạn quản lý và sử dụng mã riêng cùng với mã công khai trong các dự án của mình.


Cấu trúc dự án


 math-lib/ --.github/ --workflows/ --main.yml --build/ this is autogenerated folder --src/ --app.ts --types/ --index.d.ts --.gitignore --package.json --tsconfig.json


Phần 1: Xây dựng gói npm riêng


Bước 1: Init một dự án Node.js với TypeScript.


Lưu ý: Bạn có thể tìm hiểu cách thực hiện việc này bằng cách làm theo bài viết này Cách thiết lập Node Express với TypeScript hoặc bạn có thể sao chép repo này https://github.com/YuraAbharian/node-express-typescript


Bước 2: Bây giờ chúng ta hãy tạo dòng công việc GitHub Actions.



Hãy thêm một số cấu hình:


 name: Node.js Private Package on: push: branches: - master jobs: publish-gpr: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: '14.x' registry-url: 'https://npm.pkg.github.com/' - run: npm install - run: npm run build - run: npm publish env: NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}


Lưu ý : Hãy nhớ GITHUB_TOKEN, chúng ta sẽ nói thêm về nó sau


Bước 3: Hãy tạo / cập nhật tệp src/app.ts


 export function sum(a: number, b: number): number { return a + b; } export function minus(a: number, b: number): number { return a - b; } export function divide(a: number, b: number): number { return a / b; } export function multiple(a: number, b: number): number { return a * b; }


Bước 4: Bây giờ chúng ta cần khai báo một mô-đun cho gói của chúng ta


  • Tạo một thư mục types ở thư mục gốc của dự án của bạn


  • Tạo tệp index.d.ts trong thư mục types


Thêm các loại khai báo cho mô-đun này


 declare module "@GITHUB_USERNAME/PACKAGE_NAME" { function sum(a: number, b: number): number; function minus(a: number, b: number): number; function divide(a: number, b: number): number; function multiple(a: number, b: number): number; }


Ghi chú:

- GITHUB_USERNAME đó là tên người dùng github của bạn


- PACKAGE_NAME đó là tên gói riêng của bạn


Ví dụ: "@ yuraabharian / math-lib"


Bước 5: Hãy làm việc trên tệp package.json


 { "name": "@GITHUB_USERNAME/PACKAGE_NAME", "version": "1.0.0", "description": "", "main": "./build/app.js", "author": "", "license": "ISC", "types": "./types/index.d.ts", "publishConfig": { "registry": "https://npm.pkg.github.com/" }, "repository": { "url": "git://github.com/GITHUB_USERNAME/PACKAGE_NAME.git" }, "scripts": { "build": "npx tsc" }, "devDependencies": { "@types/node": "^18.0.0", "typescript": "^4.7.4" } }


Ví dụ: git: //github.com/yuraabharian/math-lib.git (đây sẽ là liên kết đến kho lưu trữ GitHub của bạn)


Lưu ý: Các fieds @ GITHUB_USERNAME / PACKAGE_NAME này giống như ở Bước 4


Bước 6: Hãy cấu hình môi trường kho lưu trữ của chúng tôi trước khi đẩy mã


  • Bước 2 , tôi đã yêu cầu bạn nhớ GITHUB_TOKEN vì biến này rất quan trọng.


  • Đi tới GitHub Repository - Settings


Kho lưu trữ GitHub - Cài đặt



Bước 7: Sau đó đi tới Secrets


Cài đặt - Bí mật

Bước 8: Mở tác Actions


  • Nhấp vào New repository secret


Thêm GITHUB_TOKEN


Bắt buộc: Theo liên kết này https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token để tạo mã thông báo mới.


Lưu ý: Lưu GITHUB_TOKEN ở nơi khác vì chúng tôi sẽ cần chúng trong Phần 2 của bài viết này .


Lưu ý: Chỉ cung cấp quyền write:packages truy cập cho mã thông báo này


viết: gói



Bước 9: Bây giờ hãy đẩy mã của chúng ta lên GitHub


Bước 10: Mở Kho lưu trữ → Hành động và bạn sẽ thấy rằng gói của bạn đã được triển khai


Hành động



Bước 11: Để tìm gói của bạn, hãy chuyển đến hồ sơ GitHub của bạn → Gói


Bưu kiện


Kết luận của phần đầu tiên: tại thời điểm này, bạn sẽ thấy gói của mình được triển khai


Trong phần thứ hai của bài viết này, chúng ta sẽ tìm hiểu cách cài đặt gói riêng tư vì nó yêu cầu một số hành động, bên cạnh npm install package .

Phần 2: Cài đặt và Kiểm tra

Bước 1: Thiết lập dự án Node.js


Lưu ý: Bạn có thể xem cách thực hiện điều đó trong Phần 1 → Bước 1


Bước 2: Sau đó, tại thư mục gốc của dự án sẽ nhập gói của bạn. Liên kết đến gói của bạn mà bạn có thể sử dụng theo hồ sơ GitHub → Gói → math-lib (đây là tên gói của bạn)


gói toán-lib


Bước 3: Bây giờ hãy truy cập tệp src / app.ts và cập nhật nó


 import express, {Application, Request, Response} from 'express'; import {sum, minus, multiple, divide} from '@yuraabharian/math-lib'; const app: Application = express(); const PORT: number = 3001; app.use('/sum', (req: Request, res: Response): void => { res.send(`RESULT: ${sum(5, 2)}`, ); }); app.use('/minus', (req: Request, res: Response): void => { res.send(`RESULT: ${minus(2, 2)}`); }); app.use('/multiple', (req: Request, res: Response): void => { res.send(`RESULT: ${multiple(12, 2)}`); }); app.use('/divide', (req: Request, res: Response): void => { res.send(`RESULT: ${divide(10, 2)}`); }); app.listen(PORT, (): void => { console.log('SERVER IS UP ON PORT:', PORT); });


Lưu ý: Hãy nhớ rằng tôi đang nhập math-lib từ kho lưu trữ @ yuraabharian / math-lib của mình để làm cho mẫu của bạn trông giống như @ GITHUB_USERNAME / PACKAGE_NAME


Bước 4: Chạy dự án của bạn npm start


 node-express-typescript % npm start > [email protected] start > npx tsc && node build/app.js SERVER IS UP ON PORT: 3001


Bước 5 : Vào trình duyệt của bạn và mở http: // localhost: 3001 / sum


/ sum endpoint


Điều này hoạt động, vì vậy bây giờ hãy kiểm tra tất cả các phương pháp:



/ nhiều điểm cuối


/ trừ điểm cuối


/ chia điểm cuối


Tóm tắt: Trong bài viết này, chúng tôi đã tạo và thử nghiệm gói npm riêng tư đầu tiên của bạn, tôi hy vọng bạn thích bài viết của tôi. Nếu bạn có bất kỳ câu hỏi nào, bạn có thể liên hệ với tôi qua email, LinkedIn hoặc trong phần bình luận. Lời chúc tốt nhất