Trong bài viết này mình sẽ viết về 1 số ứng dụng của command-line trong lập trình để tăng năng suất công việc cũng như nâng cao kiến thức cho bản thân và người đọc, hy vọng bạn đọc thấy hay và theo dõi.
Command-line Overall
Trong bài viết này, mình sẽ sử dụng nodeJS để viết 1 command-line đơn giản nhất có thể
và sẽ phát triển từng tính năng 1 để giữ cho bạn đọc cảm thấy dễ hiểu và ghi nhớ lâu hơn lí do mình sử dụng những thư viện đi kèm theo project.
Command-line Basic
Tạo mới thư mục (hello-cli)
Terminal di chuyển vào thư mục và chạy npm init
Tạo file index với cấu trúc sau bin/index.js
Chỉnh sửa lại file package.json với nội dung của “main” : “./bin/index.js”
Thêm đoạn code sau vào file package.json:
"bin": {
"hello": "./bin/index.js"
}
Câu lệnh “hello” sẽ là câu lệnh để bạn chay cli này và bạn có thể đổi tên theo cách bạn muốn,
mẹo là sử dụng những câu lệnh ngắn gọn xúc tích và dễ nhớ.
Bạn có thể làm giống y hệt code của mình hoặc chỉnh sửa về sau tùy theo nhu cầu sử dụng
Sau khi hoàn thành các bước trên thư mục và file package.json của bạn nên giống như sau:
Sau đó bạn thêm nội dung cho file index với các dòng code sau
#!/usr/bin/env node
console.log( "Hello!" );
Dòng đầu tiên bắt đầu với “#!"
được gọi là shebang
line.
Shebang line dùng để xác định đường dẫn tuyệt đối cho interpreter chạy dòng lệnh trên.
Để cài đặt và chạy dòng lệnh, môi trường node bắt buộc cần câu lệnh này đối với Windows và MacOS.
Tiếp theo bạn chỉ cần mở terminal tại thư mục hello-cli và nhập câu lệnh
npm install -g .
Nếu bạn sử dụng MacOS hãy thêm “sudo” ở đầu câu lệnh để sử dụng quyền root
Giờ bạn có thể thử command “hello” ở bất cứ đâu trong máy bạn và câu lệnh sẽ đơn giản in ra dòng log “Hello!”
CLI Arguments
Câu lệnh của mình đã hoạt động và giờ mình sẽ cùng bạn thêm 1 số chức năng cho câu lệnh
Mình sẽ sử dụng npm package “yargs” để thực hiện việc này.
Đầu tiên, bạn cài đặt câu lệnh
npm i yargs
Khai báo yargs ở đầu file
const yargs = require("yargs");
const usage = "\nUsage: hello <your_name> sentence to greet";
const options = yargs
.usage(usage)
.option("l", {
demandOption: false,
})
.help(true).argv;
Đồng thời thêm options để có câu lệnh –help trả hướng dẫn sử dụng và –version
Tiếp theo kiểm tra input người dùng bằng cách thêm đoạn code sau
if (yargs.argv._[0] == null) {
console.log(usage);
return;
}
Sau khi người dùng nhập đủ yêu cầu input (vd: “hello Dexter”)
Ta khai báo 1 số biến để sử dụng
let arrayGreet = ["Whats up ", "Hi there ", "How you doing "];
let randomNumb = Math.floor(Math.random() * 3);
let greetWay = arrayGreet[randomNumb];
Đây là những câu lệnh khai báo Javascript cơ bản,
Ta có 1 mảng các câu chào prefix, 1 số ngẫu nhiên từ 0-2 và sau đó ta có câu chào ngẫu nhiên.
Cuối cùng ta khai báo thêm 1 hàm xử lí dữ liệu tên người dùng đã nhập
const parseName = (words) => {
let sentence = "";
for (let i = 0; i < words.length; i++) {
sentence = sentence + words[i] + " ";
}
return sentence;
};
Hàm parseName nhận vào 1 mảng các từ (tên người dùng đã nhập có thể có 1 hoặc nhiều chữ)
và trả về 1 đoạn string tên đầy đủ.
Phía dưới ta chỉ đơn giản in kết quả bằng console.log()
console.log(greetWay + parseName(yargs.argv._));
Sau khi hoàn thành từng bước file của bạn nên giống như sau:
Giờ bạn chỉ đơn giản lưu lại file và test thử cli mình vừa hoàn thành
Conclusion
Mình biết bài viết còn khá căn bản và chưa có nhiều tính năng nhưng mình mong bạn đọc có trải nghiệm tốt và hãy comment ở dưới để tạo động lực cho mình viết phần tiếp theo nhé!
Ở phần tiếp theo mình sẽ cùng các bạn xử lí những dữ liệu phức tạp hơn đồng thời sẽ tạo giao diện đẹp hơn cho cli của riêng bạn!
Cảm ơn bạn vì đã đọc tới đây và nếu có bất cứ thắc mắc gì đừng ngại comment ở phía dưới mình sẽ giải đáp sớm nhất có thể!