【发布时间】:2015-01-22 13:28:43
【问题描述】:
我一直在努力解决一个我认为是由Webpack 引起的问题。
基本上,我有一个基于 Node 的应用程序,我将它与 Webpack 捆绑在一起以提供给客户端(它是一个基于 ReactJS 的应用程序)。当我安装Tabletop NPM 包和required 时出现问题。
尝试在浏览器中加载 Webpack 创建的 bundle.js 时,出现语法错误:
Uncaught SyntaxError: Unexpected identifier
在bundle.js 中抱怨这条线:
target[capName] = __webpack_require__(387)(""path + '/' + name);
经过一番挖掘,我发现这行来自Hoek库中的一行(这是Tabletop的子依赖):
target[capName] = require(path + '/' + name);
显然,Webpack 在这里做了一些时髦的事情。
但我无法找出原因。桌面包括 an example 的 NodeJS 用法,我能够 Webpack 并运行得很好。
我还克隆了 Hoek 和 Webpacke,没有看到任何像上面这样的非法转换。
所以现在,我不确定这是 Webpack、Hoek 还是 Tabletop 问题,这就是我在这里发布它的原因。
我在此处或 GH 上没有发现相关问题。
感谢所有帮助!
【问题讨论】:
-
这是一个动态需求问题。默认情况下,短篇故事 webpack 不支持动态需求(例如:require(not + 'a' + fixed + path);)但是可以使用插件来教它如何处理它们。请参阅:github.com/webpack/webpack/issues/118 和 github.com/webpack/webpack/…
-
由于代码是webpack生成的,很明显是bug,应该在Github上报告。还请发布您的配置,因为我认为它是由特定选项引起的。
-
感谢您的信息。我同意这是一个错误@jhnns,但正如@generalhenry 提供的链接所示,我显然不是第一个遇到这种情况的人。我已经意识到 Tabletop 有一个过时的
request依赖项 - 我正在分叉 Tabletop 来升级它,看看它是如何工作的。完成后会发布。
标签: javascript node.js npm webpack