2017-07-16 44 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 –

相关问题