Npm có vẻ như là một nền tảng tuyệt vời để sử dụng trong một tổ chức, tò mò liệu có thể sử dụng repo riêng, như với Nexus / Maven không. Không có gì xuất hiện trên Google :(
Npm có vẻ như là một nền tảng tuyệt vời để sử dụng trong một tổ chức, tò mò liệu có thể sử dụng repo riêng, như với Nexus / Maven không. Không có gì xuất hiện trên Google :(
Câu trả lời:
Tôi không nghĩ có một cách dễ dàng để làm điều này.
Một cái nhìn tại các tài liệu NPM cho chúng ta biết, rằng có thể:
Tôi có thể chạy đăng ký riêng của mình không?
Đúng!
Cách dễ nhất là sao chép cơ sở dữ liệu đi văng và sử dụng cùng một tài liệu thiết kế (hoặc tương tự) để triển khai các API.
Nếu bạn thiết lập sao chép liên tục từ CouchDB chính thức, sau đó đặt CouchDB nội bộ của bạn làm cấu hình đăng ký, thì bạn sẽ có thể đọc bất kỳ gói được xuất bản nào, ngoài các gói riêng tư của bạn và theo mặc định sẽ chỉ xuất bản nội bộ. Nếu sau đó bạn muốn xuất bản một gói cho cả thế giới thấy, bạn chỉ cần ghi đè
--registry
cấu hình cho lệnh đó.
Ngoài ra còn có một hướng dẫn tuyệt vời về cách tạo kho lưu trữ npm riêng tư trong blog đồng hồ.
EDIT (2017 / 02-26):
Không thực sự mới, nhưng hiện tại đã có kế hoạch trả phí để lưu trữ các gói riêng trên NPM.
Trong những năm qua, NPM đã trở thành một nhân tố cho nhiều công ty không phải là Node.js, thông qua hệ sinh thái frontend khổng lồ được xây dựng dựa trên NPM. Nếu công ty của bạn đang chạy Sonatype Nexus để lưu trữ các dự án Java trong nội bộ, bạn cũng có thể sử dụng nó để lưu trữ các gói NPM nội bộ.
Các tùy chọn khác bao gồm JFrog Artifactory và Inedo ProGet , nhưng tôi chưa sử dụng chúng.
https://github.com/isaacs/npmjs.org/ : Trong phiên bản npm v1.0.26, bạn có thể chỉ định các kho lưu trữ git riêng tư như một phần phụ thuộc trong tệp pack.json của bạn. Tôi đã không sử dụng nó nhưng sẽ thích phản hồi. Dưới đây là những gì bạn cần làm:
{
"name": "my-app",
"dependencies": {
"private-repo": "git+ssh://git@yourgitserver.com:my-app.git#v0.0.1",
}
}
Bài đăng sau đây nói về điều này: Debuggable: Các mô-đun npm riêng
Có một gói npm dễ sử dụng để làm điều này. https://www.npmjs.org/package/sinopia
Tóm lại, Sinopia là một máy chủ lưu trữ npm riêng tư / bộ nhớ đệm mà bạn có thể thiết lập với cấu hình bằng không.
Sinopia có thể được sử dụng để:
Verdaccio là những gì tôi đang tìm kiếm và nó xứng đáng với câu trả lời của riêng nó;) Đây là một nhánh của Sinopia được duy trì tích cực (câu trả lời được đánh giá cao ở đây ). Nó là một sổ đăng ký npm dưới dạng gói npm và có thể được tìm thấy
tại đây: https://github.com/verdaccio/verdaccio ,
tại đây: https://www.verdaccio.org ,
tại đây : pnpm i -g verdaccio
, hoặc
tại đây:docker run -it --rm --detach --name verdaccio -p 4873:4873 verdaccio/verdaccio
Vào ngày 14 tháng 4 (2015), các mô-đun riêng npm đã được giới thiệu.
Khi bạn trả tiền cho các mô-đun riêng, bạn có thể:
- Lưu trữ nhiều gói riêng như bạn muốn
- Cấp quyền truy cập đọc hoặc truy cập đọc-ghi cho các gói đó cho bất kỳ người dùng trả phí nào khác
- Cài đặt và sử dụng bất kỳ gói nào mà người dùng trả phí khác đã cấp cho bạn đọc quyền truy cập vào
- Cộng tác trên bất kỳ gói nào mà người dùng trả phí khác đã cấp cho bạn quyền truy cập bằng văn bản
Tất nhiên, nó không miễn phí - hiện tại là 7 đô la một tháng cho mỗi người dùng.
Và nó vẫn là một dịch vụ khá mới. Ví dụ: hỗ trợ cho các tài khoản tổ chức bị thiếu (kể từ tháng 6 năm 2015):
Hiện tại, các gói riêng chỉ có sẵn cho người dùng cá nhân, nhưng sắp có hỗ trợ cho các tài khoản tổ chức. Trong thời gian này, vui lòng tạo người dùng cho tổ chức của bạn và chúng tôi có thể nâng cấp nó lên một tổ chức khi có hỗ trợ tại đây.
Vì vậy, trong khi không hoàn hảo, đó là giải pháp npm chính thức để duy trì các gói riêng tư và chính điều đó làm cho nó đáng được đề cập.
CẬP NHẬT
Gói riêng của Npm hiện có sẵn, với các gói cho cả người dùng và tổ chức cá nhân :
- Không giới hạn số lượng gói công khai & riêng tư
- $ 7 / tháng / nhà phát triển
- Bao gồm một tên phạm vi, dựa trên tên tổ chức
- Xuất bản và kiểm soát quyền truy cập vào @ org-name / foo
(từ chối trách nhiệm: thậm chí không liên kết từ xa dưới bất kỳ hình thức nào với npm, Inc. )
Tôi đoán chủ đề này cần một bản cập nhật. Nếu bạn nhìn vào bất kỳ đăng ký npm nào có sẵn, chúng cực kỳ nặng và chúng cần couchdb. Gemfurry và những người khác cần bạn tách ra khỏi repos công khai. Một số npm như bóng-npm không có cam kết gần đây .
Sau đó, chúng tôi tìm thấy Reggie . Nó có một hoạt động cam kết tốt, cực kỳ dễ cài đặt và sử dụng và có sự hỗ trợ cộng đồng khá tốt . Nó rất nhẹ và bạn không phải đối phó với couchdb, v.v.
Hãy tha thứ cho tôi nếu tôi không hiểu rõ câu hỏi của bạn, nhưng đây là câu trả lời của tôi:
Bạn có thể tạo một mô-đun npm riêng và sử dụng các lệnh thông thường của npm để cài đặt nó. Hầu hết người dùng node.js sử dụng git làm kho lưu trữ của họ, nhưng bạn có thể sử dụng bất kỳ kho lưu trữ nào phù hợp với mình.
Khi gói của bạn được thực hiện, sau đó sử dụng
cài đặt npm * tarball_url *
Đến bữa tiệc muộn một chút, nhưng NodeJS (tính đến ngày 14 tháng 11 tôi đoán) hỗ trợ kho NPM của công ty - bạn có thể tìm hiểu thêm trên trang web chính thức của họ .
Từ cái nhìn lướt qua, có vẻ như npmE cho phép phản chiếu thông qua kho lưu trữ NPM - nghĩa là, nó sẽ tìm kiếm các gói trong kho NPM thực nếu nó không thể tìm thấy gói trên kho nội bộ của bạn. Có vẻ rất hữu ích!
npm Enterprise là một giải pháp tại chỗ để chia sẻ và phân phối các mô-đun JavaScript một cách an toàn trong tổ chức của bạn, từ nhóm duy trì npm và đăng ký npm công khai. Nó được thiết kế cho các đội cần:
chia sẻ nội bộ dễ dàng các mô-đun riêng kiểm soát tốt hơn việc phát triển và triển khai công việc bảo mật nghiêm ngặt hơn xung quanh việc triển khai các mô-đun nguồn mở tuân thủ các yêu cầu pháp lý để lưu trữ mã tại chỗ npmE là npm riêng
npmE là một sổ đăng ký npm hoạt động với cùng một máy khách npm tiêu chuẩn mà bạn đã sử dụng, nhưng cung cấp các tính năng cần thiết cho các tổ chức lớn hơn hiện đang nhiệt tình áp dụng nút. Nó được xây dựng bởi npm, Inc., nhà tài trợ của dự án nguồn mở npm và máy chủ của sổ đăng ký npm công cộng.
Thật không may, nó không miễn phí. Bạn có thể dùng thử, nhưng nó là phần mềm thương mại. Đây không phải là một chút tuyệt vời cho các nhà phát triển solo, nhưng nếu bạn là một nhà phát triển solo, bạn có GitHub :-)
Bài đăng này nói về cách thiết lập một đăng ký riêng
Sao chép npmjs.org sử dụng lệnh sau
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true}' -H "Content-Type: application/json"
Lưu ý rằng có "continuous":true
trong lệnh, điều này sử dụng API _changes của CouchDB và sẽ lấy bất kỳ thay đổi mới nào khi API này được thông báo.
Nếu bạn muốn dừng những bản sao này, bạn có thể dễ dàng thêm vào "cancel":true
. Sau đó, kịch bản sẽ là
curl -X POST http://127.0.0.1:5984/_replicate -d '{"source":"http://isaacs.iriscouch.com/registry/", "target":"registry", "continuous":true, "create_target":true, "cancel":true}' -H "Content-Type: application/json"
Sau đó truy cập npmjs.org readme để cài đặt npm (đảm bảo nodejs
và git
được cài đặt). Thổi là tất cả các bước
git clone git://github.com/isaacs/npmjs.org.git
cd npmjs.org
sudo npm install -g couchapp
npm install couchapp
npm install semver
couchapp push registry/app.js http://localhost:5984/registry
couchapp push www/app.js http://localhost:5984/registry
Tôi có thể đến bữa tiệc muộn một chút nhưng bất kỳ ai trong hai người này cũng có thể làm việc cho bạn:
Bạn cũng có thể sử dụng Trình quản lý gói Aragon nếu bạn thích cách tiếp cận phi tập trung: