1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zce-caz

Клонировать/Скачать
README.zh-CN.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 08:57 4b6762f

CAZ (Create App Zen)**

Это основанный на шаблонах простой и мощный инструмент для создания каркаса, который предназначен для повышения личной производительности. Он вдохновлён такими проектами, как Yeoman и Vue CLI 2.

  • Произносится: [кэз] 📷 ✌
  • Пишется: CAZ / caz

Более подробную информацию можно найти в разделе «Как это работает».

Особенности

  • Простота использования
  • Лёгкость
  • Мощь
  • Высокая эффективность работы
  • Отсутствие зависимостей от производства
  • Шаблоны
  • Настраиваемость
  • Расширяемость
  • Использование TypeScript
  • Использование современных API

Позже я приведу конкретные причины.

Содержание

  • Введение
    • Особенности
  • Начало работы
    • Подготовка среды
    • Установка
    • Быстрый старт
  • Рецепт
    • Шаблон репозитория GitHub
    • Локальный шаблон
    • Удалённый шаблон сжатого пакета
    • Автономный режим
    • Параметры командной строки
    • Режим отладки
    • Список доступных шаблонов
  • Официальные шаблоны
  • Дополнительно
    • Опции конфигурации
    • Создание собственного шаблона
    • Создание своего каркаса
  • Ресурсы
  • Мотивация разработки
  • Концепция
    • Как это работает
    • Что используется
  • План развития
  • Участие и вклад
  • Лицензия ### Список доступных шаблонов

Отображение всех доступных шаблонов:

$ caz list [owner] [-j|--json] [-s|--short]

Параметры

  • [owner]: псевдоним GitHub организации или пользователя, значение по умолчанию: 'caz-templates'

Опции

  • -j, --json: вывод в формате JSON
  • -s, --short: вывод в сокращённом формате

Официальные шаблоны

В настоящее время доступны следующие официальные шаблоны CAZ:

  • template — шаблон для создания CAZ;
  • nm — шаблон для создания Node модуля;
  • vercel — шаблон для создания приложения Vercel;
  • react — шаблон для создания современного приложения React;
  • vue — шаблон для создания современного приложения Vue.js;
  • vite — шаблон для создания Vue.js приложения на основе Vite;
  • electron:construction: шаблон для создания Electron приложения;
  • mp:construction: шаблон для создания мини-программы WeChat;
  • jekyll:construction: шаблон для создания сайта Jekyll;
  • x-pages — шаблон для создания статического сайта X-Pages.

Возможно, есть и другие: https://github.com/caz-templates

Вы также можете использовать команду $ caz list, чтобы получить список всех официальных шаблонов в реальном времени.

Все шаблоны в настоящее время размещены на GitHub, китайские пользователи могут использовать зеркала на coding.net.

Дополнительно

Конфигурационные опции

CAZ будет считывать файл конфигурации ~/.cazrc, значения по умолчанию:

; URL-адрес загрузки шаблона
; {owner} & {name} & {branch} будут заменены соответствующими значениями.
registry = https://github.com/{owner}/{name}/archive/{branch}.zip
; Значение по умолчанию для owner в шаблонах
official = caz-templates
; Имя ветки по умолчанию
branch = master

Это означает, что вы можете настроить конфигурацию, изменив файл конфигурации.

Например, ваш ~/.cazrc:

registry = https://gitlab.com/{owner}/{name}/archive/{branch}.zip
official = faker
branch = main

Затем выполните следующую команду:

$ caz nm my-project

Таким образом, шаблон будет загружен с https://gitlab.com/faker/nm/archive/main.zip.

Китайские пользователи и зеркала

Из-за сетевых ограничений загрузка шаблонов с GitHub часто приводит к тайм-ауту, вы можете рассмотреть возможность использования зеркал на coding.net.

~/.cazrc:

registry = https://zce.coding.net/p/{owner}/d/{name}/git/archive/{branch}
official = caz

Создание собственного шаблона

$ caz template my-template

Приведённая выше команда загрузит шаблон из caz-templates/template и поможет вам создать собственный шаблон CAZ.

Создайте и опубликуйте шаблон, подробности см. в Как создать шаблон.

Возможно, форк одного из официальных шаблонов — лучшее решение.

Создайте свой каркас

# Установите модуль caz локально
$ npm install caz

# Или используйте yarn для установки
$ yarn add caz

Используйте ESM и async/await:

import caz from 'caz'

try {
  const template = 'nm'
  // путь проекта (относительно текущего рабочего каталога или полный путь)
  const project = 'my-project'
  const options = { force: false, offline: false }
  // создание каркаса с помощью caz...
  await caz(template, project, options)
  // успешно создан my-проект с использованием шаблона nm
} catch (e) {
  // обработка ошибок
  console.error(e)
}

Или используйте CommonJS и Promise:

const { default: caz } = require('caz')

const template = 'nm'
// путь проекта (относительный текущий рабочий каталог или полный путь)
const project = 'my-project'
const options = { force: false, offline: false }
// создание каркаса с помощью caz...
caz(template, project, options)
.then(() => {
  // успешно создал my-проект с использованием шаблона nm
})
.catch(e => {
  // обработка ошибок
  console.error(e)
})

Это также означает, что вы можете разработать свой собственный инструмент для создания каркасов на основе модуля CAZ.

Создание и публикация инструмента для создания каркаса, подробнее см. Как создать инструмент для создания каркаса.

Справочные материалы

caz(template, project?, options?)

Создаёт новый проект с использованием указанного шаблона.

template

  • Тип: string
  • Описание: имя шаблона, также может быть путём к папке шаблона

project

  • Тип: string
  • Описание: название проекта, также может быть путём к папке проекта
  • Значение по умолчанию: '.'

options

  • Тип: object
  • Описание: параметры опций & результаты предварительного опроса
  • Значение по умолчанию: {}
force
  • Тип: boolean
  • Описание: принудительно перезаписать существующий путь
  • Значение по умолчанию: false
offline
  • Тип: boolean
  • Описание: попытка использовать автономный шаблон
  • Значение по умолчанию: false
[key: string]
  • Тип: any
  • Описание: ответы на вопросы командной строки

Мотивация для разработки

👉 🛠 ⚙

Шутка: я просто хотел сделать колесо ;P

Настоящая причина в том, что мне нужен более подходящий для моей личной производительности инструмент для создания каркаса: лаконичный, мощный и эффективный. Существующие инструменты имеют определённые ограничения из-за разных отправных точек.

Больше ничего нет Основные функции

core code представляет собой промежуточное ПО, основанное на проекте zce/mwa.

Следующие промежуточные функции выполняются последовательно:

  1. confirm: с помощью prompts подтверждает доступность целевого пути.
  2. resolve: находит шаблон из удалённого или локального диска.
  3. load: автоматически устанавливает зависимости шаблона и загружает конфигурационный файл шаблона с использованием require.
  4. inquire: использует prompts для запроса необходимой информации о шаблоне у пользователя.
  5. setup: просто вызывает функцию setup в хуке шаблона.
  6. prepare: фильтрует ненужные файлы и считывает содержимое всех файлов, которые будут выведены.
  7. rename: если имя файла содержит интерполяционное выражение, то переименовывает файл (заменяет переменные в имени файла).
  8. render: если файл является шаблоном, то отображает содержимое файла (заменяет переменные в содержимом файла).
  9. emit: выводит содержимое каждого файла в целевой путь.
  10. install: выполняет npm | yarn | pnpm install при необходимости.
  11. init: выполняет git init && git add && git commit при необходимости.
  12. complete: просто вызывает функцию complete в хуке шаблона.

Используемые библиотеки

  • adm-zip — реализация zip-файлов на JavaScript, поддерживает сжатие и распаковку в памяти и на диске.
  • cac — простая и мощная структура инструментов командной строки.
  • env-paths — получает системные пути хранения, такие как данные, конфигурация и кэш.
  • fast-glob — очень быстрый и эффективный glob-модуль для Node.js.
  • ini — анализатор ini-файлов для Node.js.
  • lodash — библиотека утилит Lodash.
  • node-fetch — оболочка fetch API для Node.js.
  • ora — мощные анимации загрузки терминала.
  • prompts — лёгкие, красивые и удобные подсказки.
  • semver — модуль semver для Node.js.
  • validate-npm-package-name — валидатор имён пакетов npm для Node.js.

План развития

Планируется реализовать или разработать следующие функции:

— config команда; — cache команда; — все жизненные циклы хуков; — бесшумный вывод в консоль и цветной вывод в консоли; — всё больше официальных шаблонов.

Также можно посмотреть список предложений по функциям (и известных проблем) в открытых проблемах на GitHub.

Вклад в проект

Чтобы внести свой вклад в проект, выполните следующие шаги:

  1. Fork репозитория на GitHub!
  2. Clone вашего форка на локальный компьютер.
  3. Checkout ветки с нужной функцией: git checkout -b my-awesome-feature.
  4. Commit ваши изменения в вашу ветку: git commit -am 'Add some feature'.
  5. Push ваши изменения в ваш форк: git push -u origin my-awesome-feature.
  6. Создайте Pull Request, чтобы я мог увидеть ваши изменения.

Примечание: перед попыткой слияния ваших изменений убедитесь, что вы уже получили последние изменения из вышестоящего репозитория.

Проект открыт под лицензией MIT. Более подробную информацию смотрите в файле LICENSE. © 汪磊.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zce-caz.git
git@api.gitlife.ru:oschina-mirror/zce-caz.git
oschina-mirror
zce-caz
zce-caz
main