簡體   English   中英

Node.js 需要將路徑存儲在變量中

[英]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 PATHsource ,我也試過:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM