[英]Node.js require path stored in a variable
我正在测试一些 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解决, 在 RequireJS 中使用Dynamic require,得到“Module name has not been loaded yet for context”错误?
我使用复合线,但不完全。
错误的:
const path = './some/path.file';
const data = require(`${path}`);
对:
const path = 'file';
const data = require(`./some/${path}.file`);
function(nameOfPlug){ // nameOfPlug := myPlug
var myPath = './../plugs/' + nameOfPlug;
console.log(myPath === './../plugs/myPlug') // true, so same string
var myRequiredPlug = require('' + myPath);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.