Grunt (phần mềm)

Bách khoa toàn thư mở Wikipedia
Grunt
Thiết kế bởiBen Alman
Phát triển bởiBen Alman, Tyler Kellen, Kyle Robinson Young, Vlad Filippov, Sindre Sorhus, Isaac Durazo, Jarrod Overson, Tim Branyen, Jörn Zaefferer, James Smith, Dave Geddes
Phát hành lần đầu11 tháng 1 năm 2012; 12 năm trước (2012-01-11)
Phiên bản ổn định
1.0.1 / 5 tháng 4 năm 2016; 8 năm trước (2016-04-05)[1]
Kho mã nguồn
Viết bằngNode.js
Hệ điều hànhLinux, Windows, OS X
Ngôn ngữ có sẵnTiếng Anh
Thể loạiTask Runner, Build tool
Giấy phépMIT License [2]
Websitegruntjs.com
Trạng tháiActive

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 dòng lệnh diện để 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, WalmartMicrosoft.[3]

Tổng quan[sửa | sửa mã nguồn]

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à trogn đó 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 hiện 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]

Khái niệm cơ bản[sửa | sửa mã nguồn]

Giao diện dòng lệnh[sửa | sửa mã nguồn]

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ửa | sửa mã nguồn]

Để 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ứanhữ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à nó phụ thuộc (Grunt plugin yêu cầu bởi các dự án). Tất cả phụ thuộc được liệt kê, hoặc trong các dependencies hoặc devDependencies phần.
  • 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 nhiệm vụ, tải plugin và/hoặc tạo ra tuỳ nhiệm vụ.

Nhiệm vụ[sửa | sửa mã nguồn]

Nhiệm vụ là các mô-đun thực hiện được chỉ định một 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 xác định trước nhiệm vụ từ hiện tại Grunt bổ sung và/hay viết mã tùy chỉnh để xác định nhiệm vụ riêng của họ phụ thuộc vào yêu cầu của họ. Một khi đã xác định, những nhiệm 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à 'định' sau đó, chỉ cần thực hiện grunt sẽ đủ.

Ví dụ[sửa | sửa mã nguồn]

Đâ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 nhiệm 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><customTaskName1>.

Plugins[sửa | sửa mã nguồn]

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[sửa | sửa mã nguồn]

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: quán, hiệu quả, hiệu quả, lặp lại.
  • Truy cập vào nhiều xác định trước bổ sung có thể được sử dụng để làm việc tạo công việc và về nội dung tĩnh.
  • Cho phép sử dụng để tuỳ nhiệm vụ xác định trước bổ sung.
  • Thích cấu hình cách tiếp cận để mã hóa.
  • Cho phép người của mình bổ sung và xuất bản chúng để tiếng.

So sánh[sửa | sửa mã nguồn]

Ant[sửa | sửa mã nguồn]

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[sửa | sửa mã nguồn]

Rake viết lệnh bằng Ruby. Rake không hỗ trợ plugin.

Gulp[sửa | sửa mã nguồn]

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[sửa | sửa mã nguồn]

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “grunt/CHANGELOG at master · gruntjs/grunt”. Truy cập ngày 11 tháng 1 năm 2018.
  2. ^ “Grunt License - NPM”.
  3. ^ “Grunt: The JavaScript Task Runner”. gruntjs.com. Truy cập ngày 14 tháng 9 năm 2016.
  4. ^ “Introducing Grunt - Open Source, Performance, Tools & Workflow - Bocoup”. bocoup.com. Truy cập ngày 14 tháng 9 năm 2016.
  5. ^ Cryer, James (2015). Pro Grunt.js. Apress. tr. 1. ISBN 978-1-4842-0013-1.

Đọc thêm[sửa | sửa mã nguồn]

Liên kết ngoài[sửa | sửa mã nguồn]