2012-12-14 20 views
14

Im sử dụng yeoman cho một dự án.Làm cách nào để tải hai tác vụ grunt có cùng tên?

Về cơ bản nó hoạt động tốt, nhưng trong quá trình xây dựng, tôi muốn di chuyển thư mục hình ảnh của mình đến một nơi khác.

Vì vậy, tôi đã tải nhiệm vụ grunt-contrib-copy để tôi làm điều đó. Nhưng tiếc là điều này xung đột với tác vụ sao chép được xây dựng trong yeoman.

Có cách nào để đặt bí danh grunt-contrib-copy trong số Gruntfile.js để tôi có thể sử dụng cả hai?

grunt.loadNpmTasks('grunt-contrib-copy'); 

//Here I need to use "copy" again but not referencing the yeoman task but the grunt-contrib-copy task. 
grunt.registerTask('build','intro clean coffee compass mkdirs concat css min replace copy time'); 

Trả lời

30

grunt.renameTask() có thể sẽ giúp bạn tại đây. Hãy thử điều này:

// temporarily rename yeoman's copy task 
grunt.renameTask('copy', 'yeomanCopy'); 
// load 'copy' from grunt-contrib-copy 
grunt.loadNpmTasks('grunt-contrib-copy'); 
// rename it to something other than 'copy' 
grunt.renameTask('copy', 'myCopy'); 
// rename yeoman's task back to its original name so nothing breaks 
grunt.renameTask('yeomanCopy', 'copy'); 

// now use 'myCopy' for your purposes 
// ... 
+0

Cảm ơn, điều đó có hiệu quả! Mặc dù tôi có vấn đề rằng một số nhiệm vụ kiểm tra nếu một nhiệm vụ nhất định đã được thực hiện trước và không biết về đổi tên của họ: -/ – acme

+0

Nhưng bạn đang đổi tên nhiệm vụ của yeoman hiện tại ngay lập tức, phải không? –

+0

Rất tiếc, tôi đã dừng đổi tên tác vụ gốc, tất nhiên là bạn đã đúng. Cảm ơn bạn Dmitry! – acme

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