我现在一直在努力解决一个问题,我认为这个问题是由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);
我还没有能够找出原因。桌面包含an example NodeJS用法,我能够Webpack并运行得很好。
我还克隆了Hoek和Webpacke,没有看到像上面那样的非法转换。
现在,我不确定这是Webpack,Hoek还是Tabletop问题,这就是我在这里发布的原因。
我在这里或GH上找不到任何相关问题。
所有帮助表示赞赏!
答案 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?