VladimirIvanin / insales-uploader

Актуальная версия тут -
https://github.com/insales/insales-uploader
MIT License
9 stars 2 forks source link

InSales uploader

Менеджер ассетов для платформы InSales.

npm version Dependency Status

Минимальный конфиг Gulp.js

Консольный клиент для InSales uploader

Установка

npm install insales-uploader --save-dev

Пример

// Подключение
var InsalesUploader = require('insales-uploader');

// Настройки
var option = {
  account: {
    id: '0123456798',
    token: '0123456798',
    url: 'shop-41324.myinsales.ru',
    http: true
  },
  theme: {
    id: '123456',
    root: 'my-shop',
    update: true,
    excludeFiles: ['**/*.DS_Store', '**/*.log'],
    startBackup: true
  },
  tools:{
    postCssPlugins: [], // [require('postcss-discard-duplicates')(), require('postcss-combine-duplicated-selectors')()]
    debugMode: false,
    openBrowser: {
      start: true
    },
    browserSync: {
      start: false,
      uploadRestart: false
    },
    autoprefixer: {
      use: true,
      config: {
          browsers: ['last 21 versions'],
          cascade: true
      }
    },
    eslint: {
      use: true,
      stopOnFail: true
    },
    stylelint: {
      use: true,
      stopOnFail: true,
      config: {
        "rules": {
          "property-no-unknown": true
        }
      }
    }
  }
}

// Инициализация
var InsalesUp = new InsalesUploader(option)

// Метод вызывает загрузку темы на компьютер
InsalesUp.download()

Методы

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

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

pushTheme — загрузка темы на сервер с полным обновлением файлов. Внимание, используя этот метод велика вероятность того, что ссылки поставленные через фильтр asset_url обновятся не сразу, так же могут не собраться файлы в которых используется #= require.

upload — загрузка файлов темы на сервер (принимает параметр update, если update:true, файлы на сервере перезаписываются, иначе пропускаются. Лишние файлы на сервере не удаляются)

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

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

initAssets — сортировка ассетов из папки media

diffLocalAssets — Метод сравнивает список файлов на сервере со списком в локальной копии

openBrowser — открыть сайт в браузере

triggerFile(event, path) - добавить/удалить/изменить файл на сервере. Event - строка события, что произошло с файлом (add/change/unlink). Path - абсолютный путь к файлу

Внимание! Методы download и stream не следует запускать одновременно!


Настройки

account

theme

tools

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

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

root/
    |-- assets/
        |-- fonts/
        |-- img/
        |-- js/
        |-- media/
        |-- style/
        |-- svg/
    |-- config/
    |-- media/
    |-- snippets/
    |-- templates/
    |-- backup/

InSales