Разработка сайтов на локальном диске
Совместимость с тысячами Gulp плагинов
Файлы шаблона автоматически сортируются по типам

О модуле

InSales <> Uploader является модулем для node.js.

Модуль даёт возможность разработки сайтов на платформе InSales на локальном диске.

Общение с платформой идет через API, поэтому нужно получить ключи доступа в бэк-офисе.



Установка

npm i -g insales-uploader
InSales Если установить модуль глобально, методы можно запускать через команду uploader
При локальной установке подключение как обычно через require или import const uploader = require('insales-uploader');

Настройка

Получить ключи доступа



Локальное подкючение

// Настройки
const options = {
  account: {
    id: '0123456798',
    token: '0123456798',
    url: 'shop-41324.myinsales.ru',
    http: true
  },
  theme:{
    id: '854716', // id темы
    root: './', // Рабочая директория
    backup: true,
    assetsSync: true
  },
  util: {
    openBrowser: true
  }
};

// Инициализация
const uploader = require('insales-uploader');
const IU = new uploader(options);

IU.download()
  .then(()=>{
    return IU.stream()
  })


Консольный клиент

Чтобы воспользоваться InSales-Uploader через консоль, установите пакет глобально: npm install -g insales-uploader

Настройки для запуска методов из консоли беруться из файла insales-config.js.

// Содержимое insales-config.js
module.exports = {
  account: {
    id: '0123456798',
    token: '0123456798', // пароль
    url: 'shop-41324.myinsales.ru',
    http: true
  },
  theme:{
    id: '854716',
    root: './',
    backup: true,
    assets: true,
    assetsSync: true,
    excludeFiles: []
  },
  util: {
    openBrowser: true
  }
};

Запуск методов:

uploader <название метода>

Примеры:

uploader init - создаст файл настроек insales-config.js

uploader - запустит метод start

uploader download - запустит метод download

uploader --help - вызвать справку

Параметры

Параметр Тип Значение поумолчанию Описание
account
id string null Идентификатор. Необходимо сгенерировать в бэк-офисе: Приложения -> Разработчикам -> Создать новый ключ доступа
token string null Пароль. Необходимо сгенерировать в бэк-офисе: Приложения -> Разработчикам -> Создать новый ключ доступа
url string null Url магазина из бэк-офиса, ссылка не должна содержать 'http://' и '/'
http boolean true Отсутствие ssl. Если у сайта есть ssl и возникают проблемы с api, нужно передать false
theme
id string/number null Id темы
root string '.' Корнеевая папка для сохранения темы
backup boolean true Создавать резервные копии темы
assetsSync boolean true Отслеживать директорию assets
excludeFiles array [] Массив путей, которые будут игнорироваться при отслеживании изменений.
assetsDomain string 'https://assets.insales.ru' Адрес cdn с медиа файлами. Переключить на https://assets3.insales.ru в случае недоступности https://assets.insales.ru
onUpdate function function(){} Колбек который срабатывает после каждого обновления в теме
util
openBrowser boolean true Открывать сайт в браузере после запуска метода stream?
plugins
exclude array [] Массив путей, которые будут игнорироваться плагинами.
style function null Колбек для подключения плагинов по работе со стилями (Пример).
script function null Колбек для подключения плагинов по работе со скриптами (Пример).
img function null Колбек для подключения плагинов по работе с изображениями (Пример).
media function null Колбек для подключения плагинов по работе с медиафайлами.
font function null Колбек для подключения плагинов по работе с шрифтами.
chokidarOptions
chokidarOptions object
{
    ignored: /[\/\\]\./,
    ignoreInitial: true,
    followSymlinks: true,
    usePolling: false,
    interval: 200,
    delay: 0,
    binaryInterval: 300,
    alwaysStat: true,
    depth: 99,
    awaitWriteFinish: {
      stabilityThreshold: 100,
      pollInterval: 100
    },
    ignorePermissionErrors: true
  }
Настройки модуля для отслеживания изменений в файлах (chokidar).
Если вы используете нестандартный терминал, например встроенный в редактор кода или терминал который имеет какие то надстройки, возможно нестабильное поведение файловой системы, поэтому chokidar нужно настраивать под каждый случай по своему.
Читайте документацию модуля chokidar.

Методы

download — загрузка темы на компьютер

pull — загрузка темы на компьютер. Перед началом загрузки, все локальные файлы удаляются

upload — загрузка темы на сервер с полным обновлением файлов.

stream — отслеживание изменений в файлах

backup — создание архива с резервной копией

listThemes — получить список доступных тем

downloadFiles — скачать файлы из раздела файлы в бэк-офисе

uploadFiles — загрузка файлов в раздел файлы (Загружаются файлы из директории files)

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

Папки media и assets, дублирут друг друга. Когда запущен стрим изменения попадают в обе папки. Так же при скачивании файлы раскладываются в media и assets.
Assets создаётся для удобства работы. Папка media является приоритетной, так как она предусмотрена архитектурой тем на платформе InSales.