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

skraer-starter-kit

v1.4.0

Published

Этот пакет призван для упрощенной конфигурации сборки вашего gulp проекта. Вам не нужно устанавливать каждый раз gulp и дополнительные пакеты к нему, переносить сборку из проекта в проект - достаточно воспользоваться этим пакетом, создать [дополнительный

Downloads

7

Readme

Основные возможности и мотивация

Этот пакет призван для упрощенной конфигурации сборки вашего gulp проекта. Вам не нужно устанавливать каждый раз gulp и дополнительные пакеты к нему, переносить сборку из проекта в проект - достаточно воспользоваться этим пакетом, создать дополнительный файл конфигурации, если это необходимо, и запустить нужный скрипт.

Для начала, скачайте пакет командой

npm install --save-dev skraer-starter-kit

Затем добавьте скрипты в ваш package.json (чуть подробнее в этом разделе)

...
  "scripts": {
    "init": "skraer-starter-kit init",
    "dev": "skraer-starter-kit",
    "build": "skraer-starter-kit build"
  },
...

Далее, запустите команду init для инициализации структуры, и можно приступать к разработке!


Сконфигурируйте вашу сборку максимально просто

Для полноценной настройки вам нужно создать файл gulp.config.json в корне проекта, который сконфигурирует все задачи. По умолчанию конфигурация выглядит так:

{
  "ignore_images": [],
  "layout_ext": "html",
  "styles_ext": "css",
  "minimize": [],
  "other_fonts": false,
  "port": 3000
}

А это пример пользовательской настройки

{
  "ignore_images": ["svg", "gif"],
  "layout_ext": "pug",
  "styles_ext": "stylus",
  "minimize": ["js", "css"],
  "other_fonts": true,
  "port": 5000
}

Не обязательно указывать все поля в конфиг - достаточно тех, которые вы хотите изменить.

ignore_images
По умолчанию все картинки подвергаются сжатию и оптимизации. Вы можете указать расширения, которые будут игнорироваться оптимизаторами.
Принимает массив из расширений.
Возможны следующие значения: jpg, jpeg, png, gif, svg.

layout_ext
Расширение файлов с разметкой, по умолчанию установлен html.
При указании отличных от html значений будет включен соответствующий обработчик.
Возможные значения: html, pug.

styles_ext
Расширение файлов со стилями, по умолчанию установлен css.
При указании отличных от css значений будет включен соответствующий обработчик.
Возможные варианты: sass, scss, stylus, less, css.

minimize
Массив значений, указывает какие файлы нужно минифицировать (минификация происходит только во время задачи build).
Возможные значения: html (пока что работает только если в layout_ext включен pug), javascript или js, css.

other_fonts
Булево значение, определяющее, будут ли перенесены остальные исходные шрифты в конечную директорию.
По умолчанию с флагом false поведение следующее: если в папке src/fonts есть файлы ttf, то сборщик конвертирует их в woff и woff2 и переносит в dist/fonts. Если же woff и woff2 уже есть в исходной папке, то они просто будут перенесены.
Если установить значение true, то все остальные шрифты будут также перенесены.

port
Порт, на котором будет запущен сервер разработки.
По умолчанию 3000


Добавьте команды

Добавьте в ваш package.json в поле scripts следующие скрипты:

  • skraer-starter-kit build для конечной сборки проекта в режиме production
  • skraer-starter-kit init для инициализации структуры проекта и создания конфига по умолчанию
  • skraer-starter-kit без одного из верхних аргументов - запускает сборку в development режиме

А также, вы можете инициировать базовые шаблоны с помощью команды skraer-starter-kit tpl, указав через двоеточие нужные файлы. Пример команды с полным перечнем доступных файлов: skraer-starter-kit tpl:html:js:css:scss

Также доступны флаги:

  • Флаг -dg сообщает, что нужно применить babel для скриптов
  • Флаг -sm включает source maps
  • Флаг -debug включает переменную DEBUG

Структура проекта

src
├───fonts
├───img
├───js
├───libs
├───other
└───styles
  • в папку fonts можно добавлять шрифты с разрешением ttf - сборщик переформатирует
  • в папку libs разместите библиотеки, которые вам нужны - по итогу они будут просто экспортированы
  • в папке other можете держать дополнительные файлы, например, какие-то файлы для скачивания в конечном проекте

Файлы с разметкой должны располагаться в папке src на верхнем уровне.

Аналогичная структура будет создана в папке dist.


Пакеты, задействованные в сборщике

| Название пакета | Срабатывает в dev среде | Срабатывает в prod среде | Вспомогательный | | --- | --- | --- | --- | | gulp-autoprefixer | | ✔ | | | gulp-babel | | ✔ | | | gulp-clean-css | | ✔ || | gulp-file-include | ✔ | ✔ | | | gulp-group-css-media-queries | | ✔ | | | gulp-imagemin | ✔ | ✔ || | gulp-less | ✔ | ✔ || | gulp-notify | ✔ | ✔ | ✔ | | gulp-plumber | ✔ | ✔ | ✔ | | gulp-preprocess | ✔ | ✔ | | | gulp-pug | ✔ | ✔ | | | gulp-rename | | ✔ || | gulp-sass | ✔ | ✔ || | gulp-sourcemaps | | ✔ || | gulp-stylus | ✔ | ✔ || | gulp-ttf2woff | ✔ | ✔ || | gulp-ttf2woff2 | ✔ | ✔ || | gulp-uglify-es | | ✔ ||

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

gulp-file-include
Использует префикс @@. Удобно использовать вместе с разметкой для некого подобия компонентной системы.
Вы можете создать директорию (напр., src/modules) и в ней держать какие-либо компоненты, например шапку сайта.
В разметке это будет выглядеть так:

<div class="container">
  @@include('./modules/header.html')
</div>

Так же вы можете подключать компоненты с определенными опциями/переменными. Подробнее смотрите в документации данного пакета.

gulp-preprocess
Определяет некоторые переменные для удобства в разметке:

  • STYLE_MIN - true, если это production среда и css указан для минификации
  • JS_MIN - true, если это production среда и javascript/js указан для минификации
  • IS_PRODUCTION - true, если это production среда
  • DEBUG - true, если указан соответствующий флаг

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

<head>
...
  <!-- @if STYLE_MIN -->
  <link rel="stylesheet" href="styles/style.min.css">
  <!-- @endif -->
  <!-- @if !STYLE_MIN -->
  <link rel="stylesheet" href="styles/style.css">
  <!-- @endif -->
...
</head>

gulp-rename
Переименовывает файлы js и css, добавляя к ним суффикс .min, но только в том случае, если среда production и соответствующие расширения указаны в поле minimize.


Задачи

Вы можете посмотреть на исходники задач по этим ссылкам:
clean
defaultTask
notifier
export
fontConvert
images
javascript
markdown
styles
sync


TODO

  • [x] write docs
  • [ ] toaster (triggers: new file in libs, new file in other, etc)
  • [ ] ignore directories with prefix __