2013-07-01 52 views
7

Dự án mới của tôi cần tôi làm việc với TFS + Git.Tôi có thể sử dụng Grunt với TFS không?

Xưng tội: Tôi không biết gì về TFS.

Tôi muốn thiết lập bản dựng cho dự án JavaScript của mình. Tôi muốn sử dụng Grunt.

Điều này có khả thi không? Có ai đã sử dụng Grunt với TFS?

+1

Bạn có thấy https này: //github.com/danactive/grunt-tfs-unlock? – elclanrs

Trả lời

18

Trong dự án hiện tại của chúng tôi, chúng tôi đang sử dụng Grunt và TFS. Tôi đã tích hợp Grunt với TFS bằng cách lấy nó từ một tệp dơi mà bạn có thể kết nối trong phần Pre- or Post-BuildEvents của tệp dự án của bạn.

Tuy nhiên, vì TFS sẽ thực thi các bản dựng của bạn với các biến môi trường cụ thể, bạn cần sử dụng đường dẫn tuyệt đối.

Một danh sách trong những điều chúng tôi đã làm

  1. Cài đặt Node.js trên xây dựng máy tính của bạn (cũng như trên máy tính phát triển của bạn (s) ofcourse)
  2. Thêm một tập tin package.json trên gốc của dự án JavaScript của bạn.
  3. Sử dụng npm để cài đặt grunt-clitại địa phương (!). Sử dụng các --save-dev cờ để thêm gói này đến phần phụ thuộc phát triển trong package.json
  4. Đối với tất cả các gói khác mà bạn cần, sử dụng NPM với cờ tương tự như ở bước 3
  5. Viết một file bat (xem ví dụ dưới đây), trong đó bạn sẽ
    1. làm sử dụng các đường dẫn tuyệt đối
    2. sử dụng NPM để cài đặt tất cả các gói được liệt kê trong file packages.json
    3. gọi grunt
  6. trong yo ur Pre- hoặc PostBuildEvents, gọi đây là file bat

file bat dụ

rem use call to execute other bat files 
echo npm install 
call "C:\Program Files\nodejs\npm" install 

rem because we have listed grunt-cli as a dev dependency, 
rem the executable will be located in the node_modules folder 
echo grunt 
call "./node_modules/.bin/grunt" 
+0

Tôi rất muốn biết thêm thông tin từ quan điểm của một ai đó đã quen thuộc với việc sử dụng TFS và muốn bắt đầu sử dụng grunt và chưa quen với nó. Ngoài ra không có gói nuget cho điều này? Có vẻ như bạn có thể dễ dàng đặt rất nhiều thứ này vào một gói nuget. –

+0

@AllenRice IMO điều duy nhất bạn có thể đặt trong một npm ở đây là hoặc là nodejs hoặc grunt. Tất cả các gói khác là gói npm. Thật không may, tôi đã không tìm thấy gói nuget cho grunt và không có bất kỳ những người phổ biến ra khỏi đó cho nodejs. Bạn có thể thử cái này: https://www.nuget.org/packages/nji/ mà sẽ chỉ làm bước 1 lỗi thời. – thomaux

+0

Tại sao tôi nên cài đặt '' 'grunt-cli''' cục bộ? –

2

tôi sử dụng grunt với TFS khi tôi phải sử dụng TFS. Tôi đã thử grunt-tfs-mở khóa, nhưng chạy vào này issue. Tôi đã giải quyết vấn đề bằng cách sử dụng grunt-shell, nó hoạt động và khiến bạn phải chịu trách nhiệm về cấu hình. Điều này gist cho thấy làm thế nào tôi sử dụng TFS với grunt. Nó thể hiện lệnh 'tf checkout', nhưng bạn có thể dễ dàng tạo ra bất kỳ lệnh tf nào với mẫu này.

0

Sau khi cài đặt nút vv ... trên máy chủ xây dựng, bạn cũng có thể sửa đổi mẫu xây dựng và thêm một bước để gọi grunt v.v. Điều này sẽ ngăn bạn không phải sửa đổi tệp csproj và cho phép bạn sử dụng các biến môi trường do TFS tạo ra.

2

Tôi đã thử tất cả các câu trả lời được liệt kê ở đây và không thể xây dựng và triển khai tự động thành công với TFS cho đến khi tôi sử dụng NCapsulate. Nó loại bỏ sự cần thiết cho NodeJs được cài đặt riêng biệt trên các tác nhân xây dựng hoặc các máy dev. Chỉ cần một gói NuGet.

Chỉ cần đảm bảo bạn thiết lập mục tiêu xây dựng đúng cách và hoạt động rất tốt.

-1

Bạn có thể tạo một tập tin mục tiêu với các bước dưới đây:

<exec command="npm install" WorkingDirectory="$(RootFolder)\ui-packages" ContinueOnError="WarnAndContinue"/> 
<exec command="grunt dash-build" WorkingDirectory="$(RootFolder)\ui-packages" /> 
<exec command="rimraf node_modules" WorkingDirectory="$(RootFolder)\ui-packages" /> 
+0

Thông tin ở đâu? – jcoppens

+3

Vui lòng thêm một số giải thích về lý do mã này giúp OP. Điều này sẽ giúp cung cấp câu trả lời trong tương lai mà người xem có thể học hỏi. Xem [answer] để biết thêm thông tin. –

Các vấn đề liên quan