如何动态更改NODE_PATH?

时间:2019-03-04 15:14:11

标签: node.js path node-modules

在我的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有什么问题?

0 个答案:

没有答案