2014-11-24 96 views
4

我一直在努力一段時間,現在出現了一個我認爲是由Webpack引起的問題。基本上,我有一個基於Node的應用程序,我捆綁Webpack服務於客戶端(這是一個基於ReactJS的應用程序)。當我安裝Tabletop NPM軟件包和require時,出現問題。Webpack導致包輸出中出現語法錯誤

當嘗試加載的WebPack創建bundle.js在瀏覽器中,我得到一個語法錯誤:

Uncaught SyntaxError: Unexpected identifier

其抱怨這一行bundle.js

target[capName] = __webpack_require__(387)(""path + '/' + name);

經過一番挖掘之後,我發現這一行起源於Hoek庫中的一行(這是T的一個子依賴abletop):

target[capName] = require(path + '/' + name);

顯然的WebPack做了一些時髦這裏。

雖然我還沒有能夠找出原因。桌面包括NodeJS使用的an example,我能夠使用Webpack並運行得很好。

我也克隆Hoek和Webpacke'd它沒有看到任何像上述的非法轉換。

現在,我不確定這是Webpack,Hoek還是Tabletop問題,這就是爲什麼我在這裏發佈它。

我發現沒有相關的問題,在這裏或GH。

所有幫助表示感謝!

+0

這是一個動態需求問題。默認情況下,短小的webpack不支持動態需求(例如:require(not +'a'+ fixed + path);)然而,可以使用插件教它如何處理它們。請參閱:https://github.com/webpack/webpack/issues/118和https://github.com/webpack/webpack/search?q=dynamic+require&type=Issues&utf8=%E2%9C%93 – generalhenry 2014-11-24 21:25:33

+0

由於代碼是由webpack生成的,這顯然是一個bug,應該在Github上報告。請同時發佈您的配置,因爲我認爲它是由特定選項造成的。 – 2014-11-24 21:49:13

+0

感謝您的信息。我同意這是一個錯誤@jhnns,但正如@generalhenry提供的鏈接所示,我顯然不是第一個體驗這一點的人。 我已經意識到Tabletop有一個過時的'request'依賴 - 我要求桌面升級它並查看它是如何工作的。完成後會發布。 – 2014-11-25 09:11:04

回答

0

由於上面顯示的動態需求行,導致出現hoek程序包的過期嵌套依賴關係。這在[email protected]中被刪除。

不幸的是,桌面的request dep具有hawk的過時依賴關係,這依賴於hoek。我分叉request和被撞的版本,但現在我在瀏覽器中獲取的負載不同的錯誤:

Uncaught Error: Cannot find module "net"

net是一個核心節點模塊,所以我懷疑有一些事情在這裏,因爲我們」重新Web服務器JS在瀏覽器中運行它。不過,這是一個不同的問題,所以我認爲這裏的原始問題的答案..

但我仍然無法使用桌面。我可能必須對它進行瀏覽並直接使用該捆綁包。

0

加入

plugins.push(new webpack.DefinePlugin({ "global.GENTLY": false }));node: {__dirname: true}

時的WebPack的配置修正superagent用的WebPack使用我用superagent取得了一些成功。

當使用request庫,加入以下的WebPack的配置:

node: { 
    "net": "empty" 
} 

修復Uncaught Error: Cannot find module "net"

不過,我現在不得不與啞劇庫,該庫的request依賴問題:Error: ENOENT, no such file or directory '/types/mime.types'

斯文,有你有任何成功的固定request用的WebPack?

+0

我在'/ types /'中觸摸過'mime.types'和'node.types',但這看起來似乎是正確的方法。 – Nodu 2014-12-03 04:33:57

+0

感謝您的信息。不,我還沒有嘗試過。我最終在我的Gulpfile中使用了Tabletop,而不是在我的客戶端應用程序中,這避免了與webpack相關的問題。 – 2014-12-04 09:06:28

相關問題