Webpack导致bundle输出中出现语法错误

时间:2014-11-24 18:20:03

标签: javascript node.js npm webpack

我现在一直在努力解决一个问题,我认为这个问题是由Webpack引起的。

基本上,我有一个基于节点的应用程序,我正在捆绑Webpack以服务于客户端(它是一个基于ReactJS的应用程序)。我安装Tabletop NPM软件包并require d。

时出现问题

尝试在浏览器中加载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上找不到任何相关问题。

所有帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

由于上面显示的动态需求行,导致hoek包导致过时的嵌套依赖性。这已在hoek@2.0.0中删除。

不幸的是,Tabletop的request dep具有过时的hawk依赖性,这又取决于hoek。我分叉request并碰撞了版本,但现在我在浏览器中加载时出现了不同的错误:

Uncaught Error: Cannot find module "net"

net是一个核心节点模块,所以我怀疑这里发生了一些事情,因为我们正在Webpacking serverside JS在浏览器中运行它。然而,这是一个不同的问题所以我认为原来的问题在这里回答了..

但我还是无法使用桌面。我可能需要浏览它并直接使用该包。

答案 1 :(得分:0)

我在添加

时使用superagent取得了一些成功

plugins.push(new webpack.DefinePlugin({ "global.GENTLY": false }));node: {__dirname: true}

到webpack的配置修复superagent以便与webpack一起使用。

使用request库时,将以下内容添加到webpack的配置中:

node: {
  "net": "empty"
}

修正Uncaught Error: Cannot find module "net"

但是,我现在遇到了mime库的问题,这是request的依赖:Error: ENOENT, no such file or directory '/types/mime.types'

Aksel,你有没有成功修复request与webpack?