Как динамически изменить NODE_PATH? - PullRequest
0 голосов
/ 04 марта 2019

В моих тестах mocha я хочу запрашивать файлы из папки ./lib без указания относительного пути к требуемому файлу.Вместо require('../../../lib/folder/file') я хочу require('folder/file')

Я смог добиться этого с помощью package.json:

"scripts": {
  "test": "NODE_ENV=test NODE_PATH=./test:./lib mocha test/**/*_spec.js"
}

До изменения package.json Я пытался изменить NODE_PATH вмой test_helper.js как этот

// test/test_helper.js

const path = require('path');

process.env.NODE_PATH = `${process.env.NODE_PATH}:${path.resolve(__dirname, '..', 'lib')}`;

и в моем тестовом файле

// test/folder/file_test.js

require('test_helper');
console.log(process.env.NODE_PATH);  // outputs ./test:/project-path/lib

const module = require('folder/file');

describe('test', function() {});

И когда я запускаю npm test, он выходит из строя с

Error: Cannot find module 'folder/file'

Что такоеЯ делаю неправильно с настройкой NODE_PATH динамически?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...