npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@webtechart/frodo

v2.1.0

Published

Main frontend controlling tool

Downloads

14

Readme

frodo - консольная утилита для взаимодействия с frontend.

Установка

Устанавливается frodo как обычный npm-пакет, только глобально, чтобы был доступен отовсюду.

sudo npm i -g @webtechart/frodo

Поиск пути

По умолчанию frodo работает только в папке /frontend/, но можно добавить возможность запуска из любой папки проекта - в этом случае frodo пытается сам найти папку /frontend/.

Для этого в .workspace_config сайта добавляем:

path_to_frontend %path%

%path% - путь до папки /frontend/ относительно корня сайта

Также можно проверить, где лежит папка /frontend/, которую использует frodo (в консоль выведется абсолютный путь к папке):

frodo path_to_frontend

Использование

Установка tao-webpack

frodo init [type]

type - beta, webgl, master. По умолчанию - master.

Подробнее про типы: master - текущая стабильная beta - beta предстоящего релиза новой мажорной версии webgl - базируется на webpack v1 и содержит небольшой комплект заготовок по работе с webgl.

Выполняет установку tao-webpack. Клонирует репозиторий https://github.com/techart/frontend-blank frontend-blank, ставит модули, дописывает .gitignore, .workspace_config, .userSettings.js и прочие мелочи.

Установка доп. модулей

frodo install [type]

type - тип установки, возможные значения: main, local.

По дефолту выполняет local.

main - ставит глобально webpack, babel-cli

local - выполняет npm run pkg.

Значение pkg указано в package.json в "scripts": "yarn install".

Сборка

Команды frodo для сборки представляют собой алиасы для npm run.

Запуск сборки

frodo build [env] [flags]

env - dev, prod. По умолчанию dev.

Собирает frontend для окружения env.

Во время сборки создается файл хеша папки /frontend/. Если сохраненный хеш и текущий совпадают - пересборка не произойдет, а сообщение об этом выведется в консоль. Для обхода есть флаг:

-f - Принудительно запускает сборку

Сводная таблица по командам

Примечание: Не закрывайте консоль после запуска режимов dev (с watch) или hot - эти скрипты должны отслеживать изменения в режиме реального времени, поэтому не убивайте их. :)

Запуск вотчера

frodo watch

Запуск hot-режима

frodo hot

Генератор блоков

frodo create block <name> [flags]

name можно указывать в формате category/name - в этом случае создастся папка (если её нет) src/block/category, в которой создастся файл подключения контекста category.js, а внутри сам блок name.

Если же name задается без category, то блок с именем name создастся в папке frоntend/src/block/common/. По умолчанию (без флагов) создается шаблон и файл стилей.

Флаги

  • -s - добавляет файл стилей
  • -j - добавляет скрипт
  • -t - добавляет шаблон
  • -S - не добавлять стили
  • -T - не добавлять шаблон
  • -J - не добавлять скрипт
  • -f - принудительное добавление. (!!!) содержимое файлов перезапишется

Удобно тем, что файлы создаются не пустые, а с заготовками кода. И это быстрее, чем вручную: с помощью команды 'frodo create block test -j' можно буквально за секунду создать папку test с созданными файлами-заготовками test.html.twig, test.js и test.scss.

Форматирование стилей

frodo format

Форматирует scss файлы проекта в соответствии с настройками линтера .stylelintrc

Обновление tao-webpack

frodo update [flags]

Обновит библиотечные файлы в папке frontend.

На данный момент обновление производится в пределах текущей мажорной версии используемой библиотеки. Если существует более свежая мажорная версия, то нужно явно указывать её номер.

Если были правки ключевых файлов, то делаются их бэкапы - они лежат рядом с актуальными файлами, имеют постфикс .back.

Флаги

  • -f - принудительное обновление (обновление будет даже на текущую версию)
  • -s - дополнительно обновит блок scripts в package.json
  • -v - обновление tao-webpack до указанной версии (в пределах мажорной версии), где может быть в следующих форматах:
  • 1.2.3 - обновление на указанную версию
  • 1.1 - обновление на последний патч в миноре
  • 1 - обновление на последний минор и патч

Удаление установленных модулей

frodo clean

Удаляет папку node_modules

Коды возврата

  • 10 - не найден frontend (т.е. непонятно, где находимся)
  • 11 - не найден frontend, неправильно указан путь в .workspace_config
  • 20 - что-то пошло не так во время установки tao-webpack
  • 21 - что-то пошло не так во время обновления tao-webpack
  • 30 - ошибка во время сборки (сборка прошла, но есть ошибки)
  • 31 - критические ошибки в процессе сборки в самом сборщике
  • 1 - любая другая ошибка