[英]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.