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 🙏

© 2025 – Pkg Stats / Ryan Hefner

ycnf

v1.1.2

Published

CLI utility for managing Yandex Cloud Functions

Readme

YCNF - Yandex Cloud Functions CLI

npm version License: MIT CI Publish

CLI утилита для управления функциями Yandex Cloud.

Установка

Глобальная установка (рекомендуется)

npm install -g ycnf

Локальная установка

npm install ycnf
npx ycnf --help

Быстрый старт

  1. В вашем проекте создайте файл .env:
echo "YC_FOLDER_ID=your_folder_id_here" > .env
  1. Создайте файл .functionconfig.json:
# Скопируйте пример из установленного пакета
cp node_modules/ycnf/functionconfig.example.json .functionconfig.json
  1. Отредактируйте .functionconfig.json под ваши нужды

  2. Используйте CLI:

ycnf create    # Создание нового проекта из шаблона
ycnf public    # Публикация функции
ycnf check     # Информация о функции
ycnf delete    # Удаление функции

Настройка

Переменные окружения

Создайте файл .env в корне вашего проекта:

YC_FOLDER_ID=your_folder_id_here

Опционально: Если у вас несколько профилей YC CLI, добавьте:

YC_PROFILE=your_profile_name

Настройка

Yandex Cloud CLI

Убедитесь, что у вас установлен и настроен Yandex Cloud CLI:

# Установка YC CLI
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

# Инициализация
yc init

Конфигурация функции

Настройки функции хранятся в файле .functionconfig.json (создается в каждом проекте):

{
  "name": "api-handler",
  "runtime": "nodejs22",
  "memory": 256,
  "timeout": 60,
  "public": true,
  "logging": true,
  "description": "REST API handler with routing",
  "entrypoint": "index.handler",
  "environment": {},
  "tags": [],
  "serviceAccountId": null,
  "networkId": null
}

Параметры конфигурации:

  • name - Имя функции (обязательно)
  • runtime - Runtime для выполнения (например, "nodejs22")
  • memory - Объем памяти в MB
  • timeout - Таймаут выполнения в секундах
  • public - Публичный доступ к функции (true/false)
  • logging - Включить логирование (true/false)
  • description - Описание функции
  • entrypoint - Точка входа (например, "index.handler")
  • environment - Переменные окружения (объект key-value или null). Если null, существующие переменные в YC сохраняются
  • tags - Теги для версии функции (массив строк)
  • serviceAccountId - ID сервисного аккаунта (строка или null)
  • networkId - ID сети (строка или null)

Важно:

  • Поле name обязательно и должно содержать имя функции в Yandex Cloud
  • logging: true - включить логирование в папку по умолчанию, false - отключить логирование, не указано - использовать поведение по умолчанию
  • environment: если null или не указано, существующие переменные окружения в Yandex Cloud сохраняются. Если указан объект, он заменит все переменные окружения

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

Установка в проект

  1. Установите CLI утилиту глобально:
npm install -g ycnf
  1. В вашем проекте создайте необходимые файлы:
# Создайте .env файл
echo "YC_FOLDER_ID=your_folder_id_here" > .env

# Создайте .functionconfig.json
cp /path/to/ycnf/functionconfig.example.json .functionconfig.json
  1. Отредактируйте .functionconfig.json под ваши нужды (имя функции, runtime, память и т.д.)

Создание нового проекта

Для быстрого создания нового проекта Yandex Cloud Function используйте команду create:

npx ycnf create --name my-function

Или без указания имени (будет запрошено в диалоге):

npx ycnf create

Эта команда создаст:

  • Структуру проекта с папкой src/
  • Файл src/index.js с базовым обработчиком
  • Конфигурацию .functionconfig.json с полными параметрами
  • GitHub Actions workflow для автоматического деплоя
  • Файлы .gitignore, package.json, README.md

Публикация функции

npx ycnf public

Опции:

  • -f, --force - Принудительное создание новой версии (в настоящее время работает как обычная публикация)

Удаление функции

npx ycnf delete

Опции:

  • -f, --force - Удаление без подтверждения

Получение информации о функции

npx ycnf check

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

.
├── cli.js                      # Основной CLI файл
├── package.json                # Зависимости и конфигурация
├── .functionconfig.json        # Конфигурация функции (создать в каждом проекте)
├── .env                        # Переменные окружения (создать в каждом проекте)
├── env.example                 # Пример переменных окружения
├── functionconfig.example.json # Пример конфигурации функции
├── src/                        # Исходный код функции
│   └── index.js
└── README.md

Требования

  • Node.js >= 14.0.0
  • Yandex Cloud CLI
  • Настроенный аккаунт Yandex Cloud
  • ID папки в Yandex Cloud (YC_FOLDER_ID)

Разработка

Установка для разработки

git clone https://github.com/ivnvMkhl/ycnf.git
cd ycnf
npm install
npm link

Тестирование

npm test

Публикация

Автоматическая публикация (рекомендуется)

Пакет автоматически публикуется в npm при создании релиза на GitHub:

  1. Создайте тег:

    git tag v1.0.1
    git push origin v1.0.1
  2. Создайте релиз на GitHub или используйте GitHub CLI:

    gh release create v1.0.1 --title "Release v1.0.1" --notes "Bug fixes"
  3. GitHub Action автоматически опубликует пакет в npm

Ручная публикация

npm version patch  # или minor, major
npm publish

Примечание: Для автоматической публикации необходимо настроить NPM_TOKEN в секретах GitHub репозитория. См. GITHUB_ACTIONS_SETUP.md для подробностей.

Автор

iMkhl - [email protected]

Лицензия

MIT License. См. LICENSE для подробностей.

Ссылки