2016-08-19 21 views
0
const x = 'ui/SelectBox.js'; 
    const module = require(x); 

不起作用(錯誤:無法找到模塊 'UI/SelectBox.js'),但不知何故的Node.js/browserify需要()不工作的變量,但不會對字符串字面工作

const module = require('ui/SelectBox.js'); 

的作品。另外,如果我在命令行上調用節點並且執行

var x = 'ui/SelectBox.js'; require(x); 

它確實有效。

我在win10機器上做了它,但也在debian下測試了同樣的東西,並得到了相同的結果。哦,我正在使用watchify(通過browserify自己嘗試它,達到相同的結果...)。

node --version 

- > V5.6.0

編輯:好吧,看我自己的答案。它可以爲您節省一些麻煩。

回答

0

謎語的答案與往常一樣令人沮喪地變得簡單。

如果您使用browserify,您無法抽象您的require(),因爲(我猜)browserify會解析您的源代碼。

因此,如果您絕對必須通過變量請求(),請創建一個將名稱映射到require()d模塊的對象,然後使用它。

+0

這可以在節點v5.12.0 - 'const index =「。」上正常工作。 var app = require(index)'也適用於節點模塊。我也很驚訝,require('ui/SelectBox.js')'不會拋出。它應該是'require('./ ui/SelectBox.js')'和'const x ='./ui/SelectBox.js'; require(x)'也適用於我... –

相關問題