2013-03-06 21 views
5

Tôi đang cố gắng sử dụng lệnh grunt trong ứng dụng nhanh của mình.grunt.task.run() không hoạt động

Tôi có một cái gì đó như thế này:

var grunt = require('grunt'); 
require(process.cwd() + '/gruntfile.js')(grunt); 
grunt.task.run('development'); 

Nhưng nhiệm vụ dường như không được wokring. (không có lỗi được xuất ra giao diện điều khiển) Nhưng nếu tôi chạy trực tiếp trong giao diện điều khiển "phát triển grunt" nó hoạt động tốt.

Trả lời

7

grunt.task.run chỉ thêm nhiệm vụ vào hàng đợi, vì vậy nó hoạt động trong một tác vụ hiện có, nhưng không phải trong một tập lệnh bên ngoài. Đây là một kỹ thuật đơn giản mà tôi đã mượn từ grunt/lib/grunt/cli.js. Cẩn thận - nó không phải là một phần của the official API. Grunt issue 687 ghi lại sự cần thiết cho một API chính thức cho tính năng này.

var grunt = require('grunt'); 
process.chdir(__dirname); 
var config = require('./Gruntfile'); 
config(grunt); 
console.log('Minifying...'); 
grunt.tasks(['cssmin']); 
+1

Hoạt động tuyệt vời, cảm ơn bạn đã chia sẻ! –

+0

Rực rỡ! Bây giờ tôi không cần phải cài đặt grunt-cli! – laike9m

+0

Làm cách nào để chuyển các tham số bổ sung của lệnh grunt như --force hoặc --verbose trong trường hợp này? – Ozil