Node.JS Browser
Данная конфигурация подходит если проект использует окружение node.js и пакетный менеджер npm для сборки приложения для работы в браузере. В этом случае проект может быть написан на таких языках как JavaScript или TypeScript. Данная конфигурация предназначена для браузерных приложений. Для серверных приложений см. Node.JS Server.
Написать yaml файл можно как самостоятельно, используя инструкцию ниже, так и воспользоваться нашим генератором yaml, перейдя по ссылке.
Секция meta
Секция meta
файла amvera.yml
будет выглядеть следующим образом:
meta:
environment: node
toolchain:
name: browser
version: 18
Из параметров, которые можно здесь менять это meta.toolchain.version
. Логически это версия node.js, которую нужно использовать для работы. Технически значение version
подставляется в имя образа Docker, который будет использован.
Для фазы сборки используется образ node:${meta.toolchain.version}
. Так как для фазы запуска node.js вообще не используется, meta.toolchain.version
может быть любым тегом этого образа на докер хабе.
Секция build
Секция build
может содержать следующие необязательные параметры:
-
additionalCommands
-
artifacts
Во время сборки скрипт выполняет команду npm install && npm run build
. Если будет задан параметр additionalCommands
, то будет выполнена команда npm install && ${build.additionalCommands}
. Это может пригодиться, если в проекте команда сборки называется не build
.
build:
additionalCommands: npm run amvera:build
Параметр artifacts
позволяет указать какие файлы должны попасть в итоговое приложение. По умолчанию будут скопированы все файлы из папки build
в корень папки приложения.
Параметр artifacts
в отличие от других параметров это не строка, а словарь. Ключ в нем это маска файлов источника копирования, а значение: папка, в которую будут скопированы файлы.
Так, значение artifacts
по умолчанию:
build:
artifacts:
"build/*": /
Мы используем следующие правила копирования:
- в качестве источника указываются только относительные пути (без / в начале);
- если под маску попал файл, файл будет скопирован в папку назначения без исходного пути;
- если под маску попала папка, она будет скопирована целиком в папку назначения вместе со всем содержимым.
Секция run
Для запуска используется модифицированный образ nginx:1.23.2
для поддержки маршрутизации в SPA приложениях.
В секции run
нет настраиваемых параметров.
Рецепты
React
meta:
environment: node
toolchain:
name: browser
version: 18
Vue
meta:
environment: node
toolchain:
name: browser
version: 18
build:
artifacts:
"dist/*": /
Angular
meta:
environment: node
toolchain:
name: browser
version: 18
build:
artifacts:
"dist/my-app/*": /