我正在测试一些 nodejs 代码,这是我的目录的样子:
-> source //NODE PATH=./source ...
-> plugs
-myPlug.js
-test.js
在 test.js
中,我尝试像这样要求 myPlug.js
:
function(){
var myRequiredPlug = require('./myPlug.js') //this works
}
因为NODE PATH
是source
,我也尝试过:
function(){
var myRequiredPlug = require('./../plugs/myPlug') //also works
}
但是每次我的应用程序都需要不同的插件,所以我非常想以这种方式创建路径:
function(nameOfPlug){ // nameOfPlug := myPlug
var myPath = './../plugs/' + nameOfPlug;
console.log(myPath === './../plugs/myPlug') // true, so same string
var myRequiredPlug = require(myPath);
}
当我按他的方式尝试时,我收到错误:Error: Cannot find module './../plugs/myPlug'
我已经尝试过 path.normalize
,甚至用 path.join
加入路径,但得到相同的结果。有什么想法吗?
更新:回答
这个答案可以使用 RequireJS 来解决,Dynamic require in RequireJS, getting "Module name has not been loaded yet for context" error?
最佳答案
我使用复合线,但不完全。
错误:
const path = './some/path.file';
const data = require(`${path}`);
右:
const path = 'file';
const data = require(`./some/${path}.file`);
关于javascript - Node.js 需要存储在变量中的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30752365/