2017-07-16 46 views
0

絕望模式:嘗試了許多不同的配置,都失敗了。我有一個browserified + babelified束稱爲視頻郵件,client.js這裏:如何調查來自browserified bundles的「無法找到模塊X」?

https://github.com/binarykitchen/videomail-client/tree/develop/dist

的的package.json的那個包的主入口指向此文件。

現在,當我從require()內的其他項目,包和browserify,然後我看到使用browserify從一飲而盡任務此錯誤:

[16:26:32] Error: Cannot find module './keys' from '/home/michael-heuberger/code/videomail.io/node_modules/videomail-client/dist' 
    at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:55:21 
    at load (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43) 
    at onex (/home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31) 
    at /home/michael-heuberger/code/videomail.io/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47 
    at FSReqWrap.oncomplete (fs.js:152:21) 

Hmnmm,聽起來很複雜?讓我重述一下。包視頻郵件客戶端瀏覽。另一個項目videomail.io需要它,並再次與其他軟件包一起重新瀏覽。那就是它失敗了。

在附註中,當我使用videomail-client.js運行獨立示例時,它工作正常。

我認爲問題是,bro​​wserify無法解析./keys文件。但它應該包含在browserified的videomail-client.js包中並從那裏解析。我如何告訴browserify以正確的方式解決問題?

建議歡迎我如何調查和解決這個問題。謝謝!!

回答

0

這聽起來很多像一個問題,我ran into在幾年前(是的,這是很難形容:))

我從來沒有得到一個答案,但也許你有更好的運氣。我最終去的解決方案是而不是嘗試重新瀏覽已經瀏覽過的庫;最後,我把它連接起來,然後縮小整個捆綁包。

+0

...或切換到WebPack,如果這是一個選項。根據我的經驗,這是一個更多功能的打包機。 –

+0

mmmhhh,謝謝,但不想放棄在這裏。但也許我應該考慮使用視頻郵件客戶端軟件包本身的未經過瀏覽的源代碼。但問題在於,它是用ES6編寫的,任何其他需要它的項目都必須首先對它進行babelify處理,這很麻煩...... –

+0

實際上,這並不像您想象的那麼遙遠。 ES6 +項目可以引用來源,而ES5項目可以包含browserified庫。這正成爲接受/標準做法(ref [rollup js](https://github.com/rollup/rollup#publishing-es6-modules))和上述WebPack)。 –

1

該解決方案有兩個步驟:使用browserify的獨立選項和gulp-derequire包。它現在有效。

+1

不錯!您介意發佈解決方案(示例代碼)並接受您的答案嗎?如果你在那裏得到示例代碼,我也會鏈接到我的舊帖子。這將幫助遇到這個問題的下一個可憐的SAP。 :) –

+0

沒有足夠的代表接受我自己的答案:) ...和工作解決方案已經在github這裏https://github.com/binarykitchen/videomail-client/blob/develop/gulpfile.js#L83 –

相關問題