Javascript Webpack导致捆绑输出中出现语法错误
我已经为一个我认为是由它引起的问题挣扎了一段时间 本质上,我有一个基于节点的应用程序,我将它与Webpack捆绑在一起以服务于客户端(它是一个基于JS的应用程序)。当我安装NPM软件包并Javascript Webpack导致捆绑输出中出现语法错误,javascript,node.js,npm,webpack,Javascript,Node.js,Npm,Webpack,我已经为一个我认为是由它引起的问题挣扎了一段时间 本质上,我有一个基于节点的应用程序,我将它与Webpack捆绑在一起以服务于客户端(它是一个基于JS的应用程序)。当我安装NPM软件包并required它时,问题出现了 尝试在浏览器中加载创建的网页包bundle.js时,出现语法错误: 未捕获的语法错误:意外标识符 正在抱怨bundle.js中的这一行: target[capName]=\uuuuuuu网页包\uuuuuuuuuuu需要(387)(“路径+”/“+name”); 经过一些挖掘
require
d它时,问题出现了
尝试在浏览器中加载创建的网页包bundle.js
时,出现语法错误:
未捕获的语法错误:意外标识符
正在抱怨bundle.js
中的这一行:
target[capName]=\uuuuuuu网页包\uuuuuuuuuuu需要(387)(“路径+”/“+name”);
经过一些挖掘,我发现这一行源自库中的一行(这是Tabletop的子依赖项):
目标[capName]=require(路径+'/'+name);
很明显,Webpack在这里做了一些古怪的事情
但我还没能找出原因。桌面包括NodeJS的使用,我可以将其打包并运行良好
我还克隆了Hoek,并对其进行了网页打包,但没有看到任何像上述那样的非法转换
所以现在,我不确定这是一个网页,Hoek,还是桌面问题,这就是为什么我把它贴在这里
我没有发现任何相关问题,无论是在这里还是在GH上
感谢大家的帮助 结果是由于上面显示的动态require行,
hoek
包的过时嵌套依赖项导致了这种情况。这是在2005年删除的hoek@2.0.0.
不幸的是,Tabletop的请求
dep有一个过时的依赖项hawk
,它又依赖于hoek
。我分叉了请求
并修改了版本,但现在我在浏览器中加载时遇到了一个不同的错误:
未捕获错误:找不到模块“net”
net
是一个核心节点模块,因此我怀疑这里发生了什么,因为我们正在对服务器端JS进行网页打包,以便在浏览器中运行它。然而,这是一个不同的问题,所以我认为原来的问题在这里回答。
但我还是不能使用桌面。我可能需要浏览它并直接使用该捆绑包。我使用了
superagent
,在添加时取得了一些成功
plugins.push(新的webpack.DefinePlugin({“global.littley”:false})代码>
及
节点:{uuuu dirname:true}
到webpack的配置修复了与webpack一起使用的超级代理
使用请求
库时,将以下内容添加到网页包的配置中:
node: {
"net": "empty"
}
修复了未捕获错误:找不到模块“net”
但是,我现在遇到了mime库的问题,它是请求的依赖项:错误:enoint,没有这样的文件或目录'/types/mime.types'
Aksel,你是否成功地用webpack修复了请求
?这是一个动态需求问题。默认情况下,短篇小说网页包不支持动态requires(例如:require(not+'a'+fixed+path);),但是可以使用插件教它如何处理它们。请参阅:由于代码是由webpack生成的,这显然是一个bug,应该在Github上报告。请也张贴您的配置,因为我认为它是由一个特定的选项引起的。谢谢你的信息。我同意这是@jhns的一个bug,但正如@generalhenry提供的链接所示,我显然不是第一个体验到这一点的人。我已经意识到Tabletop有一个过时的请求
依赖项-我正在用Tabletop来升级它,看看效果如何。完成后将发布。我在/types/
中触摸了mime.types
和node.types
,但这似乎不是正确的方法。感谢提供信息。没有,我还没试过。我最终在Gulpfile中而不是在客户端应用程序中使用了Tabletop,从而避免了与webpack相关的问题。我是在一个模糊相关的问题上来到这里的,plugins.push(new webpack.DefinePlugin({“global.littley”:false})代码>修复了它。棒 极 了