Действия Github для NodeJS — «Ошибка: не удается найти модуль» для локального файла

У меня есть файл рабочего процесса github для проекта NodeJS:

name: NodeJS CI on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [10.x] steps: — uses: actions/[email protected] — name: Using Node version ${{ matrix.node-version }} uses: actions/[email protected] with: node-version: ${{ matrix.node-version }} — run: npm ci — run: npm run build —if-present — run: npm test — name: Upload code coverage run: bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

со следующей структурой проекта:

. ├── package-lock.json ├── package.json ├── src │ ├── api │ │ ├── calendar.js │ │ ├── credentials.js │ │ └── token.js │ ├── app.js │ ├── builders │ │ └── event.js │ ├── config │ │ └── index.js │ ├── loaders │ │ ├── express.js │ │ ├── index.js │ │ └── mongo.js │ ├── models │ │ ├── credential.js │ │ └── token.js │ ├── scripts │ │ └── tokenGenerator.js │ └── services │ ├── calendar.js │ ├── credentials.js │ ├── google.js │ ├── mongo.js │ └── token.js └── tests ├── dbHandler.js └── services ├── calendar.js ├── google.js └── mongo.js

Локально, когда я запускаю npm test, мои тесты проходят без каких-либо проблем. Однако, когда тесты запускаются в Github Actions, я получаю следующую ошибку:

Run npm test > [email protected] test /home/runner/work/my-repo/my-repo > nyc —reporter=html mocha ‘tests/**/*.js’ —exit Error: Cannot find module ‘../models/credential’ at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.js:562:25) at Module.require (internal/modules/cjs/loader.js:692:17) at require (internal/modules/cjs/helpers.js:25:18) at Object.<anonymous> (/home/runner/work/my-repo/my-repo/src/services/mongo.js:2:140) etc..

Если у рассматриваемого файла есть относительные требования:

const CredentialSchema = require(‘../models/credential’); const TokenSchema = require(‘../models/token’);

Я пробовал несколько вещей:

  • использование process.cwd() вместе с остальной структурой папок для получения абсолютного пути к файлу
  • добавление .js к требованию
  • разные версии узла
  • та же версия узла на моей машине и в действии Github

но похоже, что ничего не решает ошибку. Моя node_modules папка игнорируется в .gitignore.

Репо является частным, но я не думаю, что это имеет к нему какое-то отношение.

Спасибо!

Источник: ledsshop.ru

Стиль жизни - Здоровье!