4

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

本质上,我有一个基于 Node 的应用程序,我将它与 Webpack 捆绑在一起以提供给客户端(它是一个基于 ReactJS 的应用程序)。当我安装Tabletop NPM 包并required 时出现问题。

尝试bundle.js在浏览器中加载 Webpack-created 时,出现语法错误:

Uncaught SyntaxError: Unexpected identifier

这是在抱怨这一行bundle.js

target[capName] = __webpack_require__(387)(""path + '/' + name);

经过一番挖掘,我发现这行来自Hoek库中的一行(它是 Tabletop 的子依赖项):

target[capName] = require(path + '/' + name);

显然,Webpack 在这里做了一些时髦的事情。

虽然我无法找出原因。Tabletop 包含一个NodeJS 使用示例,我能够将其 Webpack 并运行得很好。

我还克隆了 Hoek 和 Webpacke,没有看到任何像上面这样的非法转换。

所以现在,我不确定这是 Webpack、Hoek 还是 Tabletop 问题,这就是我在这里发布它的原因。

我在这里或在 GH 上没有发现相关问题。

所有帮助表示赞赏!

4

2 回答 2

1

添加时我已经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 库的问题,它依赖于requestError: ENOENT, no such file or directory '/types/mime.types'

Aksel,你request用 webpack 修复成功了吗?

于 2014-12-03T04:12:26.790 回答
0

hoek由于上面显示的动态要求行,导致包的过时嵌套依赖项导致了这种情况。这已在 hoek@2.0.0 中删除。

不幸的是,Tabletop 的requestdep 有一个过时的依赖关系,它又hawk依赖于hoek. 我分叉request并修改了版本,但现在在浏览器中加载时出现不同的错误:

Uncaught Error: Cannot find module "net"

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

但我仍然无法使用桌面。我可能必须对其进行 Browserify 并直接使用该捆绑包。

于 2014-11-25T09:57:26.197 回答