Grunt (phần mềm)
From Wikipedia, the free encyclopedia
Remove ads
Grunt là một công cụ thực thi JavaScript, tự động làm cách việc thường xuyên như tinh giảm, biên dịch, kiểm tra đơn vị, và linting. Nó sử dụng giao diện dòng lệnh để chạy các nhiệm vụ được định nghĩa sẵn trong một tệp (gọi là tệp Gruntfile). Grunt, được tạo ra bởi Ben Alman và được viết bằng Node.js. Nó được phân phối qua npm.
Hiện nay, có hơn năm ngàn plugin có sẵn trong hệ sinh thái của Grunt.
Các công ty sử dụng Grunt, bao gồm Adobe, jQuery, Twitter, Mozilla, Bootstrap, Cloudant, Opera, WordPress, Walmart và Microsoft.[3]
Remove ads
Tổng quan
Grunt ban đầu được tạo ra bởi Ben Alman vào năm 2012, nhằm làm hiệu quả hơn việc viết và bảo trì các bộ lệnh JavaScript với chỉ một tệp lớn. Nó được thiết kế như một công cụ chạy trên dòng lệnh cho các dự án JavaScript.[4]
Grunt được sử dụng chủ yếu để chạy tự động các lệnh cần phải thực hiện thường xuyên. Có hàng ngàn plugin có thể được cài đặt và sử dụng trực tiếp để thực hiện một số nhiệm vụ thông dụng. Một trong những tính năng hay nhất của Grunt đó là nó cho phép tùy biến các lệnh. Mỗi lệnh có một tập hợp các tùy chọn mà trong đó có thể được thiết lập bởi người dùng để đáp ứng nhu cầu cụ thể của họ. Hơn nữa, Grunt cung cấp khả năng để xác định tuỳ theo nhiệm vụ, mà có thể kết hợp nhiều nhiệm vụ vào một nhiệm vụ duy nhất hoặc thêm hoàn toàn mới chức năng.[5]
Remove ads
Khái niệm cơ bản
Giao diện dòng lệnh
Giao diện dòng lệnh của Grunt có thể được cài đặt thông qua Npm. Thực hiện lệnhgrunt
sẽ tải và chạy phiên bản của Grunt trong các thư mục hiện tại. Do đó, chúng ta có thể duy trì phiên bản khác nhau của Grunt trong thư mục khác nhau và thực hiện mỗi phiên bản như chúng ta muốn.
Các tập tin
Để sử dụng Grunt trong một dự án, có hai tập tin cần phải được tạo ra trong các thư mục gốc, cụ thể package.json và Gruntfile.
- package.json - chứa những dữ liệu cho các dự án, kể cả tên phiên bản mô tả, tác giả, giấy phép và các phụ thuộc (Grunt plugin mà dự án phụ thuộc vào). Tất cả phụ thuộc được liệt kê tại
dependencies
hoặcdevDependencies
. - Gruntfile - một tập JavaScript hoặc CoffeeScript có tên là "Gruntfile.js" hoặc "Gruntfile.coffee" chứa mã để cấu hình tác vụ, tải plugin và/hoặc tạo ra tác vụ.
Tác vụ
Tác vụ là các mô-đun dùng để thực thi một công việc cụ thể. Chúng được xác định trong tập tin Gruntfile.
Nhà phát triển có thể tải các tác vụ được định sẵn từ những Grunt plugin đã có và/hoặc viết mã tùy chỉnh để xác định tác vụ riêng theo ý muốn. Một khi đã xác định, những tác vụ này có thể chạy từ dòng lệnh đơn giản bằng cách thực hiện grunt <taskname>
. Nếu <taskname>
được xác định trong Gruntfile là 'default' thì chỉ cần thực hiện grunt
là đủ.
Remove ads
Ví dụ
Đây là một ví dụ về một Gruntfile được viết để cho thấy làm thế nào có thể tải plugin, tạo tác vụ và cấu hình chúng:
module.exports = function(grunt) {
// Task configuration
grunt.initConfig({
taskName1: 'Task1 Configuration',
taskName2: 'Task2 Configuration'
});
// Loads plugins
grunt.loadNpmTasks('pluginName1');
grunt.loadNpmTasks('pluginName2');
// Custom tasks
grunt.registerTask('customTaskName1', 'Custom task description', function(taskParameter) {
// Custom statements
});
// Combining multiple tasks to a single task
grunt.registerTask('customTaskName2', ['taskName1,customTaskName1']);
// Default task - runs if task name is not specified
grunt.registerTask('default', ['customTaskName2']);
};
Trong ví dụ trên, thực hiện lệnh grunt
sẽ chạy <customtaskName2>
, lệnh này đã được xác định như là một sự kết hợp của <taskName1>
và <customTaskName1>
.
Plugins
Plugin là các tệp lệnh có thể tái sử dụng và tìm thấy trên Npm.
Nhà phát triển có thể tự tao các plugin Grunt bằng cách chạy grunt-init
plugin và phát hành qua npm bằng lệnh npm publish
.
Lợi ích
Sau đây là một trong những ưu điểm của sử dụng Grunt:
- Tất cả các nhiệm vụ vận động viên có đặc tính sau: nhất quán, hiệu quả, năng suất cao, lặp lại.
- Truy cập vào nhiều plugin đã có sẵn để làm việc với các tác vụ JavaScript và nội dung tĩnh.
- Cho phép tự tạo/ điều chỉnh các tác vụ bằng các plugin có sẵn.
- Hướng tới "sử dụng cấu hình" thay vì gõ mã lệnh.
- Cho phép người dùng tự tạo plugin và xuất bản lên npm.
Remove ads
So sánh
Ant
Ant là công cụ build dựa trên Java. Ant đòi hỏi phải có các tệp JAR và viết mã lệnh với định dạng XML.
Rake
Rake viết lệnh bằng Ruby. Rake không hỗ trợ plugin.
Gulp
Gulp.js cũng tương tự Grunt, đều là công cụ chạy lệnh JavaScript. Gulp định nghĩa lệnh trong mã nguồn chứ không trong tập cấu hình như Grunt. Gulp nhanh hơn Grunt.
Xem thêm
Tham khảo
Đọc thêm
Liên kết ngoài
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads