Показать HN: Hammerkit – Инструмент сборки

Показатьhnhammerkit8211Инструментсборки

Hammerkit

build license npm

Монтаж

npm и -g hammerkit

Документация

Документы и руководство по началу работы можно найти здесь.

Вступление

Файл сборки обычно называется build.yaml и определяет список задач, определенных в файл или ссылаясь на них из других файлов сборки.

задачи: установить: описание:  установите модули узлов   cmds : -  npm install   

Задача содержит список команд, которые выполняются по порядку.

задачи:  install_and_install :  cmds : -  npm install  -  npx tsc  

Задачи могут иметь зависимости друг от друга, и они должны выполняться первыми.

cmds: - npx tsc ">

 задачи: установить: 
 cmds : -  npm install  строить:  deps :    cmds : -  npx tsc   

Чтобы предотвратить дублирование работы, можно определить список исходных и выходных файлов. Они будут проверяться перед каждым выполнением, и если исходные файлы не изменились с последнего раза, задача будет пропущена. Примечание: если задача зависимости была изменена или не имеет определенных исходных файлов, кэширование не будет работать и запускать задачу каждый раз.

src: - src - tsconfig.json cmds: - npx tsc ">
задачи: установить:
 src : -  package.json  - 
 package-lock.json   cmds : -  npm install   генерирует : -  node_modules  строить: :    src : - 
 src  -  tsconfig.json   cmds 
: - 
 npx tsc  

Исходным списком могут быть файлы или папки, которые будут проверяться рекурсивно. Также можно использовать шаблоны глобусов [dist]

 задачи: строить:  src : - 
 src / / *. ts  -  tsconfig.json  
 cmds : -  npx tsc   

Переменные среды могут также должны быть определены в файле сборки или непосредственно в задаче.

  envs :  ВЕРСИЯ_УЗЛА :  19. 25. 0  задачи: версия: 
 envs :  NODE_ENV : производство  cmds : -  npm run build  

Для более чувствительных переменных среды файлы .env могут могут быть использованы или могут быть переданы. Если переменная среды определена как номер версии в следующем примере, ее наличие проверяется перед выполнением, а если отсутствует, прерывается.

задачи: опубликовать :

 envs :  ВЕРСИЯ : 
 $ ВЕРСИЯ   cmds : -  npm publish  

Задача также может выполняться внутри контейнера докеров.

задачи: установить: изображение:

 узел: 19. 25. 0   cmds : -  npm ins  высокий 

Для задач докеров исходный и выходной файлы монтируются в контейнер. Если есть какие-либо дополнительные файлы, которые не являются ни одним из них, они могут быть определены с помощью монтирования. npm

задачи: установить: изображение:
 узел: 25. 36. 0   генерирует : -  node_modules   src : -  package.json  -  package-lock.json   маунты : -  $ PWD / .npm: /. Npm  -  $ PWD / .config: /. Config  
 cmds : -  npm install   

Зависимые задачи исходные и выходные файлы также будут смонтированы, так как они могут быть зависимыми.

изображение: узел: 25. 36. 0 генерирует: [dist] src: [src] cmds: - node_modules / .bin / tsc ">

 задачи: установить: изображение: 
 узел: 19. 47. 0  
 генерирует : -  node_modules   src : -  package.json  -  package-lock.json   крепления : - 
 $ PWD / .npm: /. Npm  -  $ PWD / .config: /. Config  
 cmds : -  npm install  строить:  deps : 
 изображение: 
 узел: 36. 36. 0   генерирует : 
 [dist]   src :  [src]   cmds : -  node_modules / .bin / tsc  

На файлы сборки можно ссылаться из других файлов сборки.

задачи: строить: deps : [a:build, b:build] Рекомендации: a : проект / a / build.yaml b :

 проект / b / build.yaml  

Для предотвращения дублирования задач, сюда же включены. Они похожи на ссылки, но другое поведение workdir. Для задач в указанном файле сборки рабочий каталог относится к файлу сборки, в котором определена задача. Для include рабочий каталог является относительным, где он был включен.

задачи: строить: deps : [npm:install]

 
 cmds : -  tsc  включает:  npm : 
 utils / build.npm.yaml  

Существует также расширенная функциональность, чтобы свести к минимуму повторение. С расширением задачу можно повторно использовать, а также при необходимости корректировать.

build.yaml

задачи: строить: deps : [npm:install] продлевать: tsc: build включает: npm :

 utils / build.npm.yaml   tsc : 
 utils / build.tsc.yaml  

utils / build.tsc.yaml

задачи: строить: изображение: узел: 36. 36. 0 src :

 [src, tsconfig.json]   генерирует :  [dist]   cmds : -  node_modules / .bin / tsc -b  

Дорожная карта

Your email address will not be published. Required fields are marked *