• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

cac — Command And Conquer, a JavaScript library for building CLI apps.

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,483
Баллы
155
In this article, we will review cac — command and conquer, a JavaScript library for building cli apps.


  1. What is cac package?


  2. cac usage in Tsup.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Command and conquer is a JavaScript library for building cli apps.

Features


  • Super light-weight: No dependency, just a single file.


  • Easy to learn. There’re only 4 APIs you need to learn for building simple CLIs: cli.option cli.version cli.help cli.parse.


  • Yet so powerful. Enable features like default command, git-like subcommands, validation for required arguments and options, variadic arguments, dot-nested options, automated help message generation and so on.


  • Developer friendly. Written in TypeScript.

learn more about

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

.

Usage


Simple Parsing

Use CAC as simple argument parser:


// examples/basic-usage.js
const cli = require('cac')()

cli.option('--type <type>', 'Choose a project type', {
default: 'node',
})

const parsed = cli.parse()

console.log(JSON.stringify(parsed, null, 2))





Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



This example is

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

  1. In a file named

    Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

    in Tsup source code, cac is imported as shown below:

import { cac } from 'cac'




2. At

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, cac is initialised as shown below:


const cli = cac('tsup')




3. From

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

are configured. As you can see, there are lot of options available in this Tsup library.


.option('--entry.* <file>', 'Use a key-value pair as entry files')
.option('-d, --out-dir <dir>', 'Output directory', { default: 'dist' })
.option('--format <format>', 'Bundle format, "cjs", "iife", "esm"', {
default: 'cjs',
})
.option('--minify [terser]', 'Minify bundle')
.option('--minify-whitespace', 'Minify whitespace')
.option('--minify-identifiers', 'Minify identifiers')
.option('--minify-syntax', 'Minify syntax')
.option(
'--keep-names',
'Keep original function and class names in minified code',
)




4. Below is the command configuration:


.command('[...files]', 'Bundle files', {
ignoreOptionDefaultValue: true,
})




5. In the actions, all the arguments that you have passed are accessible via flags variable. options is updated with these flags as shown below


.action(async (files: string[], flags) => {
const { build } = await import('.')
Object.assign(options, {
...flags,
})




Most importantly, build function is called as shown

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

.


}
await build(options)
})




Hey, my name is

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. I study large open-source projects and create content about their codebase architecture and best practices, sharing it through articles, videos.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.





  1. Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.





  2. Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.





  3. Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.





Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу