2013-05-03 12 views

Trả lời

430

Từ npm docs:

git://github.com/<user>/<project>.git#<branch> 

git://github.com/<user>/<project>.git#feature\/<branch> 
+113

Kể từ npm 1.1.65, URL Github có thể ngắn gọn hơn 'người dùng/dự án'. https://www.npmjs.org/doc/files/package.json.html Bạn có thể đính kèm nhánh như 'user/project # branch' – dantheta

+1

' git: //github.com/ / .git # feature/blah' đã làm việc nhưng '/ .git # feature/blah' không ... có lẽ regex của họ cần phải nâng cao hơn để tính 'tính năng/blah' vào tài khoản. Đây là npm 'v1.4.28' – pulkitsinghal

+1

Bạn bao gồm số phiên bản như thế nào? – Richard

109

mỗi comment @ dantheta của:

Tính đến NPM 1.1.65, Github URL có thể ngắn gọn hơn dùng/dự án. npmjs.org/doc/files/package.json.html Bạn có thể đính kèm các chi nhánh như # chi nhánh dùng/dự án

Vì vậy

"babel-eslint": "babel/babel-eslint", 

Hoặc cho thẻ v1.12.0 về công ty cổ phần:

"jscs": "jscs-dev/node-jscs#v1.12.0", 

Lưu ý, nếu bạn sử dụng NPM --save, bạn sẽ nhận được git còn

Từ https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git URL như url Dependencies

Git có thể có dạng:

git: //github.com/user/project.git#commit-ish git + ssh: // user @hostname: project.git # commit-ish git + ssh: //[email protected]/project.git#commit-ish git + http://[email protected]/project/blah.git#commit-ish git + https://[email protected]/project/blah.git#commit-ish

Các cam-ish thể được bất kỳ thẻ, sha, hoặc chi nhánh có thể được cung cấp làm đối số git checkout. Mặc định là chính.

GitHub URL

Tính đến phiên bản 1.1.65, bạn có thể tham khảo các url GitHub như chỉ là "foo": "user/foo-dự án". Cũng giống như với các URL git, hậu tố commit-ish có thể được bao gồm . Ví dụ:

{"tên": "foo",
"phiên bản": "0.0.0" ,
"phụ thuộc": { "tốc hành": "visionmedia/bày tỏ", "mocha": "visionmedia/mocha # 4727d357ea" }}

+2

Tùy thuộc vào cam kết sha1 nên là tùy chọn ưa thích, đặc biệt nếu bạn phụ thuộc vào một repo không thuộc quyền kiểm soát của bạn. Các nhánh và thẻ Git không phải là bất biến (có thể bị xóa/thay đổi, độc hại/do tai nạn), trong khi gần như không thể tạo ra xung đột sha1. –

+1

Tôi có thể có chi nhánh và cam kết cam kết không? – munchschair

27

Nếu bạn muốn sử dụng devel hoặc feature chi nhánh, hoặc bạn đã không được công bố một gói nhất định để đăng ký NPM, hoặc bạn có thể không phải vì đó là một mô-đun riêng, sau đó bạn có thể trỏ đến một URI git:// thay vì một số phiên bản trong của bạn package.json:

"dependencies": { 
    "public": "git://github.com/user/repo.git#ref", 
    "private": "git+ssh://[email protected]:user/repo.git#ref" 
} 

#ref phần là tùy chọn, và nó có thể là một chi nhánh (như master), thẻ (như 0.0.1) hoặc một phần hoặc toàn bộ cam kết id.

10

Trên phiên bản mới nhất của NPM bạn chỉ có thể làm:

npm install gitAuthor/gitRepo#tag

Nếu repo là một gói NPM hợp lệ nó sẽ được tự động aliased trong package.json như:

{ "NPMPackageName": "gitAuthor/gitRepo#tag" }

Nếu bạn có thể thêm câu trả lời này vào câu trả lời của @justingordon, bạn không cần phải chỉnh sửa thủ công ngay bây giờ!

+0

hoạt động như một sự quyến rũ. –

+0

không, không phải. Nó cài đặt không chính xác. Bằng cách nào đó nó không bao gồm toàn bộ cấu trúc thư mục từ kho lưu trữ, chỉ một số tệp như package.json, yarn.lock, readme và giấy phép. Không có thư mục src hoặc dist. – StalkAlex

+0

@StalkAlex https://docs.npmjs.com/cli/publish và sau đó kiểm tra repo bạn đang cài đặt cho các tập lệnh xây dựng. Có thể chúng được gắn thẻ hoặc cài đặt sau không hoạt động cho bạn, đó là vấn đề đối với gói cụ thể đó dù sao hy vọng điều này sẽ hữu ích! – vortex