2015-06-22 20 views
1

通過對此question進行標記,您可以在node.js中的運行時需要一個基於字符串的路徑。使用Browserify/Babel/node.js您可以要求基於變量字符串的文件

奇怪的是,這似乎爲我的節點服務器端好工作,但似乎並沒有使用巴貝爾/ Browserify

對於這個特殊的錯誤工作客戶端,我基本上有很多我想要的模擬JSON數據到require進行測試,當實際API被關閉時。

// slug comes into the function and could for example be 'movies' 
    let modulePath = '../mock/products/' + slug + '.js' 
    let data = require(modulePath) 

這給了我下面的錯誤

Failed! Error: Cannot find module '../mock/products/movies.js' 

如果我將其更改爲let modulePath = '../mock/products/movies.js'這將是檢索數據沒有問題... ...和我提到,如果我運行這個服務器端它沒有問題,但是當我運行代碼客戶端時並不好。

我使用巴貝爾/ babelify到transpile的ES6代碼ES5

使用下面的命令來建立與browserify

browserify --debug -t [babelify] client.js > public/js/bundle.js

我開發devDependencies在我的package.json如下:

"devDependencies": { 
    "browserify": "^8.0.3", 
    "babel": "^4.0.1", 
    "babelify": "~6.1.2" 
    } 
+0

你能詳細說一下客戶端部分嗎?瀏覽器不實現CommonJS模塊系統。你在使用browserify嗎? –

+0

只要使用browserify和babelify轉換就會更新 –

回答

2

如果可以靜態分析的話,Browserify只能計算依賴關係。如果要動態生成導入,它無法知道要捆綁哪些模塊。

相關問題