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:
tạo tài khoản GitHub ( nếu bạn chưa có )
đọc bài viết Cách thiết lập Node Express với TypeScript
đọc bài viết Cách thiết lập đường ống CD CI từ Scratch với GitHub Actions ( Tôi thực sự khuyên bạn nên đọc bài viết này để hiểu cách hoạt động của GitHub Actions nếu bạn không quen thuộc với GitHub Actions )
Gói npm riêng tư là gì và nó có thể được sử dụng ở đâu?
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
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.
Tạo .github/workflows
Trong thư mục .github/workflows
, tạo tệp main.yml
Bạn có thể làm quen với quy trình làm việc của GitHub Actions bằng cách làm theo bài viết này Cách thiết lập đường ống CD CI từ Scratch với GitHub
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
Bước 7: Sau đó đi tới Secrets
Bước 8: Mở tác Actions
New repository secret
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
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
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
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
.
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)
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
Đ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:
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