Hướng dẫn sử dụng kho NPM riêng tư

Trong quá trình phát triển dự án, đã xuất hiện nhiều tình huống cần sử dụng kho NPM riêng tư, ví dụ như logic chung sau khi chia nhỏ dự án, thư viện thành phần chung, SDK theo dõi sự kiện được đóng gói của chúng ta. Những đoạn mã này không tiện để công khai lên kho NPM chính thức và chỉ có thể được đăng tải lên kho riêng của công ty. Vì vậy, chúng tôi đã xây dựng kho NPM riêng cho công ty dựa trên Nexus. Tài liệu này chủ yếu hướng dẫn cách sử dụng kho NPM riêng tư.

Địa chỉ truy cập giao diện quản trị web của kho

https://npm.tenwit.vip/

Chỉ có thể truy cập trong mạng nội bộ công ty, nếu làm việc từ xa cần dùng VPN hoặc điều khiển từ xa máy tính tại văn phòng Phải đăng nhập mới xem được các gói NPM đã đăng tải, nếu chưa đăng nhập sẽ hiển thị Chưa có gói NPM nào được đăng tải

Mô tả chính của kho

  • Mặc định tắt chức năng đăng ký người dùng, nếu cần sử dụng vui lòng liên hệ Quan Hồng Phúc để tạo tài khoản, định dạng tài khoản yêu cầu là phần trước @ trong địa chỉ email công ty
  • Cung cấp một tài khoản công cộng tenwit-fe dành cho quy trình CI, không khuyến khích cá nhân sử dụng tài khoản công cộng
  • Kho hỗ trợ chức năng proxy, có thể thiết lập toàn bộ nguồn NPM thành kho riêng tư của công ty

Đăng tải gói NPM riêng tư

Về cách viết một gói NPM, có rất nhiều hướng dẫn trên mạng, ở đây không đi sâu vào, cần lưu ý một số điểm sau:

  • Quy ước tên gói
  • Tất cả tên gói trong package.json phải bắt đầu bằng @tenwit-fe/@tenwit, ví dụ @tenwit-fe/jimo
  • @tenwit-fe dùng cho không gian tên gói phía client browser
  • @tenwit dùng cho không gian tên gói phía server
  • Quy ước publishConfig
  • Gói riêng tư trong package.json phải có trường publishConfig, cần cấu hình như sau:
"publishConfig": {
        "registry": "https://npm.tenwit.vip/"
}

Sử dụng gói NPM riêng tư trong dự án kinh doanh

Trong thư mục gốc của kho dự án kinh doanh bắt buộc phải có tệp cấu hình .npmrc (lưu ý yarn 1.x hỗ trợ .npmrc, phiên bản 2.x trở đi không còn hỗ trợ), và nên commit vào hệ thống quản lý phiên bản, nội dung chính như sau:

# Mặc định sử dụng nguồn Taobao
registry=https://registry.npm.taobao.org

# Các gói thuộc không gian tên @tenwit-fe và @tenwit sử dụng địa chỉ kho NPM riêng tư của Tengyin
@tenwit-fe:registry=https://npm.tenwit.vip/
@tenwit:registry=https://npm.tenwit.vip/

# Khóa bí mật cho kho NPM riêng tư
//npm.tenwit.vip/:_auth=${TENONE_NPM_TOKEN}

always-auth=true
save-exact=true

Cần tự tìm cách thiết lập biến môi trường TENONE_NPM_TOKEN trong hệ thống, nội dung theo định dạng echo -n "tài khoản:mật khẩu" | openssl base64 (lưu ý, lệnh echo openssl base64 là lệnh Linux/Mac, Windows cần tự tìm giải pháp tạo khóa)

Cách thực hiện trên hệ điều hành Windows 1、Thực thi lệnh mã hóa echo -n "tenwit-fe:hellonpm2021" | openssl base64 trong git bash để lấy kết quả dGVud2l0LWZlOmhlbGxvbnBtMjAyMQ== 2、Thiết lập biến môi trường TENONE_NPM_TOKEN=dGVud2l0LWZlOmhlbGxvbnBtMjAyMQ== trên Windows 3、Khởi động lại hệ thống

Khi thực thi lệnh yarn, yarn sẽ tự động đọc tệp cấu hình này và đăng nhập tự động với khóa trong biến môi trường để tải về các phụ thuộc

Nhóm quy ước sử dụng duy nhất yarn 1.x

Thẻ: npm repository private registry npmrc yarn

Đăng vào ngày 22 tháng 6 lúc 09:02