2013-07-05 12 views
11

Tôi đang làm việc trên một dự án được xây dựng bằng cách sử dụng grunt. Nó phụ thuộc vào một repo bên ngoài (https://github.com/facebook/xctool) mà tôi muốn sao chép/kéo trong npm install hoặc grunt mySetupTask.Nhiệm vụ Grunt để sao chép/thanh toán một dự án git

Tôi đã thấy các đường nhỏ của một plugin grunt-gitco tại http://gruntjs.com/plugins/checkout, nhưng dường như không có sẵn.

Bất kỳ điểm khởi đầu tốt nào cho điều này?

Trả lời

14

Hoặc thiết lập một npm postinstall script trong package.json của bạn:

{ 
    "name": "mypackage", 
    "scripts": { 
     "postinstall": "git clone git://github.com/facebook/xctool.git" 
    } 
} 

Hoặc sử dụng grunt-shell để thực hiện lệnh sao chép các repo:

grunt.initConfig({ 
    shell: { 
     gitclone: { 
      command: 'git clone git://github.com/facebook/xctool.git' 
     } 
    } 
}); 
+1

grunt-shell thực sự đã giúp tôi giải quyết các vấn đề khác (ví dụ: http://stackoverflow.com/questions/16711058/running-a-grunt-task-on-one-gruntfile-from-another) mà tôi đang gặp phải trong Gruntfile này . Cảm ơn rất nhiều về plugin của bạn! – xverges

+2

FYI: Đối tượng 'initConfig' của bạn thiếu một dấu ngoặc đóng (đặc biệt là đối tượng thuộc tính' shell'). SO sẽ không cho phép tôi thực hiện thay đổi vì nó có tối thiểu 6 ký tự cho các chỉnh sửa. –

2

Bạn có biết rằng npm install hỗ trợ URL git không?

npm install git://github.com/facebook/xctool.git 

Docs

+1

Cảm ơn. Tôi đã không nhận thức được điều đó. Thật không may, repo tiền đề không phải là một mô-đun với tệp package.json của nó, nhưng một cái gì đó hoàn toàn không liên quan đến node.js. npm không hài lòng với điều đó. – xverges

4

Có bây giờ là một plugin Grunt cho việc này. Không chắc chắn nếu nó có sẵn tại thời điểm đó. Tôi vẫn gặp một số vấn đề khiến nó hoạt động.

https://npmjs.org/package/grunt-git

gitclone: 
    clone: 
    options: 
     repository: "https://github.com/imaginethepoet/autojqm" 
     branch: "master" 
     directory: "repo"