如何调查"找不到模块X"来自浏览器捆绑?

时间:2017-07-16 04:38:29

标签: gulp babeljs browserify

绝望模式:尝试了许多不同的配置,但都失败了。我在这里有一个名为videomail-client.js的浏览器+ babelified包:

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

该软件包的package.json主条目指向此文件。

现在,当我require()从另一个项目中打包并浏览它时,我会在使用browserify的gulp任务中看到此错误:

[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运行独立示例时,它运行正常。

我认为问题是browserify无法解析./keys文件。但它应该包含在浏览器化的videomail-client.js包中并从那里解决。如何告诉browserify以正确的方式解决它?

建议欢迎我如何调查和解决这个问题。谢谢!

2 个答案:

答案 0 :(得分:1)

该解决方案包含两个步骤:使用browserify的独立选项和gulp-derequire包。它现在有效。

答案 1 :(得分:0)

这听起来好像很多就像几年前的问题ran into一样(是的,很难形容:))

我从来没有得到答案,但也许你会有更好的运气。我最终使用的解决方案是尝试重新浏览已经浏览过的库;我最终只是将它连接起来并在之后缩小整个捆绑包。