@vkontakte/icons-scripts

4.0.1 • Public • Published

@vkontakte/icons-scripts

Этот пакет содержит скрипты, используемые для сборки SVG-иконок в React-компоненты.

Создание своей библиотеки иконок

Для этого необходимо организовать иконки по папкам: в каждой папке-категории должны быть только иконки. Например, здесь показаны категории иконок по размеру, а также дополнительная папка Unsorted с иконками, не подошедшими к другим категориями.

Обязательно должна быть папка svg, в которой размещены категории.

src/
  svg/
    12/
      add_12.svg
      smile_12.svg
    28/
      add_28.svg
      smile_28.svg
    Unsorted/
      icon_with_different_sizes.svg

Добавляем нужные зависимости:

{
  "name": "@scope/react-icons-library",
  "version": "0.0.0",
  "files": ["dist", "src/svg"],
  "main": "dist/index.js",
  "module": "dist/es6/index.js",
  "typings": "dist/typings/index.d.ts",
  "sideEffects": ["*.css"],
  "scripts": {
    "build-icons": "node scripts/build-icons.js"
  },
  "dependencies": {
    "@vkontakte/icons-sprite": "^1.0.1"
  },
  "peerDependencies": {
    "react": "^18.0.0"
  },
  "devDependencies": {
    "@types/react": "^18.0.0",
    "@vkontakte/icons-scripts": "latest",
    "react": "^18.0.0"
  }
}

scripts/build-icons.js:

const { generateIcons } = require('@vkontakte/icons-scripts');

generateIcons({
  srcDirectory: './src',
  distDirectory: './dist',
  extraCategories: ['Unsorted', 'Foo'],
  deprecatedIcons: {
    deprecated_icon_24: null,
    deprecated_icon_28: 'replacement_icon_28',
  },
});

Опции скрипта

srcDirectory {string}
Директория с иконками. В ней должна быть папка svg с категориями.

distDirectory {string}
Папка для сгенерированных компонентов.

extraCategories {string[]}
Дополнительные категории. По умолчанию скрипт будет искать иконки в svg/[0-9][0-9] и svg/Unsorted.

Может быть паттерном для glob.

deprecatedIcons {Record<string, string | null>>}
Список устаревших иконок.

Объект, в котором свойство — это имя файла устаревшей иконки, а значение этого свойства — имя файла иконки на замену устаревшей (или null, если такой нет).

Readme

Keywords

none

Package Sidebar

Install

npm i @vkontakte/icons-scripts

Weekly Downloads

2

Version

4.0.1

License

MIT

Unpacked Size

18 kB

Total Files

14

Last publish

Collaborators

  • vitaliy.podlubnyak
  • adeltsareva
  • v.kirichenko
  • mclaran
  • s.donov
  • vkarelin
  • gbowsky
  • pa.koshkin
  • vkcom
  • k.egor.smirnov
  • mobyman
  • vkcom-publisher
  • terdenan
  • captain__bamboo