Этот учебник является следующим на «A приложении RiscoD с Castify!».
Дорога к ES импорт
Node.js использовал систему модуля Commonjs (CJS) с начала, и недавно она добавила поддержку модулям ECMASSCRICT (ESM) ( Без - эксплуатационные модули
Флаг ).
Поэтому для обновления этого проекта в модуль ESM есть много возможностей, описанных в Эта статья Module Module Node.js.
Я буду следовать за тем, который имеет смысл для меня в проект, написанный в CJS в качестве первой реализации:
- Добавить
«Тип»: «Модуль»
вPackage.json.
- Переименуйте
JS
Файлы кMJS
расширение - исправить
__dirname
Использование, так как он не поддерживается в ESM - Удалить все
требуется
в пользуимпорт
Обратите внимание, что это обязательно добавить расширение файла в локальные файлы Импорт:
import authRoutes from './auth.js'
- Удалить
«Используйте строгий»
Так как это поведение по умолчанию с ESM - Обновите
Module.exports
кЭкспортировать приложение функции по умолчанию (Castify, Opts, Next) {..
- Исправьте сценарий запуска, поскольку
Castify-Cli
не поддерживает загрузку ESM прямо сейчас
CI/CD.
Добавление CI/CD в проект довольно просто благодаря Действия GitHub И великое общение вокруг них!
Непрерывная интеграция
Мы хотим автоматически запустить тесты всякий раз, когда есть запрос на тягу, поэтому действия, которые необходимо предпринять:
#... steps: # checkout the project - uses: actions/checkout@v2 # install nodejs on the Virtual Machine - name: Use Node.js uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} # install the project - name: Install run: npm install --ignore-scripts # run the test on the project itself - name: Run tests run: npm test
Непрерывная доставка
Доставка наших приложений необходимо просто нажать новые коммиты на сервер удаленного Git Heroku. Более того, для наших клиентов было бы полезно увидеть, какая версия приложения работает и обновлен файл ChangeLog.
Чтобы автоматизировать эти шаги, необходимо определить хороший рабочий процесс в первую очередь.
Для примеров процесс должен отвечать на вопросы, такие как:
- При освобождении приложения?
- Какой семевер является новой версией?
- Какие изменения должны быть написаны в изменении?
- Должно быть выполнены любые сценарии? — Как обновление базы данных
- Должно быть отправлено уведомление?
- Много других головных болей !!
Это приложение будет применять такой процесс:
- В каждом слиянии в
Выпуск
ветвь - Использование формата сообщений Commit, как Обычные коммиты
- Поднять новую версию Semver на основе сообщений Commit
- Тейте версию
- Создайте описание изменений, группируя сообщения Commit
- Замораживайте выпуск на Github с текстом ChangeLog
- Развертывание Героку
Этот список может быть легко преобразован в действие GitHub, где каждый шаг выполнит одну из этих задач, и результат будет таким (опускание параметров):
- uses: actions/checkout@v2 - name: Version Bump uses: phips28/gh-action-bump-version@master ... - name: Build Changelog message uses: scottbrenner/generate-changelog-action@master ... - name: Create Github Release uses: actions/create-release@latest ... - name: Deploy to Heroku uses: akhileshns/heroku-deploy@v3.4.6 ...
Проверьте Исходный код чтобы увидеть полный файл.
Конец
В следующем посте мы будем:
- Добавить новые функции в приложение:
- Храните токен в cookie
- Добавьте немного
/API
конечные точки
Побочные эффекты
Чтобы написать эту статью:
- Я создал Выпуск к
Castify-Cli
поддержать ESM Я добавил в
GH-Action-Bump-версия
Действие GitHub:- Я зафиксировал расширение панели значка VSCode # 178.
Оригинал: «https://dev.to/eomm/project-automation-2bee»