我一直在努力一段时间,现在出现了一个我认为是由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。
所有帮助表示感谢!
这是一个动态需求问题。默认情况下,短小的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
由于代码是由webpack生成的,这显然是一个bug,应该在Github上报告。请同时发布您的配置,因为我认为它是由特定选项造成的。 – 2014-11-24 21:49:13
感谢您的信息。我同意这是一个错误@jhnns,但正如@generalhenry提供的链接所示,我显然不是第一个体验这一点的人。 我已经意识到Tabletop有一个过时的'request'依赖 - 我要求桌面升级它并查看它是如何工作的。完成后会发布。 – 2014-11-25 09:11:04