Skip to content
This repository has been archived by the owner on Apr 5, 2022. It is now read-only.
/ zlo Public archive

Кэширование NPM пакетов (локально и в SVN)

Notifications You must be signed in to change notification settings

direct-adv-interfaces/zlo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zlo

Описание

Утилита для кэширования зависимостей Выкачивает из npm зависимости для модуля, запаковывает результат в архив и кладет архив в svn

node zlo --kill --target=['svn'|'local'] - очистка md-файла для данного zlo.json

node zlo --kill-all --target=['svn'|'local'] - очистка всего кэша

node zlo --kill-all-except-current --target=['svn'|'local'] - очистка всего кэша кроме текущего

node zlo --verbose - запуск zlo с выводом подробных логов

node zlo --dev - сборка в dev-режиме

node zlo --disable-svn - сборка без кэширования в svn

npm test - запуск тестов

Автор

[heliarian ]heliarian@gmail.com

Как пользоваться и расширять

В корне директории из которой будет запускаться утилита необходимо создать файлы: zlo-config.json - библиотеки/пакеты, которые необходимо скачать

    {
         "localCachePath": "local-dependencies",
         "svnCachePath": "svn+ssh://svn.my-svn.ru/dependencies",
         "useYarn": false,
         "loadTimeout": 10000,
         "beforeLoad": {
             "killAllExceptCurrent": {
                "target": {
                   "local": true
                }
             }
         }
     }

Параметры

localCachePath

папка для хранения локального кэша

svnCachePath

путь к svn-репозиторию в котором хранится кэш

loadTimeout

максимально-допустимое время установки зависимостей по истечению которого установка прекращается

useYarn

использовать Yarn для сборки пакетов (по умолчанию используется npm)

beforeLoad

действие, которое нужно выполнить перед загрузкой зависимостей принимает параметры:

Удалить все зависимости кроме текущей во всех кэшах

    "killAllExceptCurrent": true

Удалить все зависимости кроме текущей в локальном кэше

    "killAllExceptCurrent": {
        "target": {
           "local": true
        }
    }

Удалить все зависимости кроме текущей в svn

    "killAllExceptCurrent": {
        "target": {
           "svn": true
        }
    }

Аналогично: удалить все зависимости во всех кэшах (включая текущую, если она существует)

    "killAll": true

killAll может принимать значения аналогично killAllExceptCurrent

package.json - файл, по которому npm будет устанавливать зависимости

Сборка и обновление

Чтобы собрать deb-пакет с новой версией, нужно:

  1. Обновить версию пакета (npm version minor)
  2. Дописать в файл changes новую версию (полученную на предыдущем шаге) с описанием по подобию предыдущих
  3. Закомитить, запушить (в том числе теги git push --tags)
  4. Выполнить npm run build
  5. Зайти в каталог debian и выполнить dupload