Angular-Fullstack发电机生产应用程序不能正确服务于socket.io?

我在通过相同的设置和configuration在AWS上部署的两个angular-fullstack应用程序之间陷入了麻烦。

看来,尽pipe有相同的设置,但其中的一个socket.io-client / socket.io.js没有正确的服务。

似乎它得到一个错误400(错误的请求),当试图得到socket.io.js,反过来,它得到一个“io未定义”。

我已经缩小到这段代码:

var socketio = require('socket.io')(server, { serveClient: (config.env === 'production') ? false : true, path: '/socket.io-client' }); 

似乎如果我设置serveClient始终是真实的,它将工作,因为它始终服务于客户端。

如果是这样的话,那么为什么在线设置这么多的资源会导致客户端产生错误? 它适用于一个应用程序,但不是其他的。

编辑:刚刚部署在AWS与serveClient:true。 不起作用。 但显然它在我的地方工作。

编辑2:为工作的应用程序做了一个npm install ,现在它已经坏了,所以也许有些东西是打包的。

编辑3:做了一个testingNODE_ENV=productiongrunt build:dist和相同的问题,所以它应该是与其中一个包的问题。

发现angular-fullstack内置的grunt文件将抓取bower.json中的所有依赖项(通过wiredep),其中包括google-code-prettify / bin / prettify.min.js,因为我已经安装了它。

缩小过程与已经缩小的prettify.min.js(从来没有实际上有过其他缩小的文件之前已经有过这个问题)是不相容的。

所以我必须在wiredep.target.exclude属性中包含一个正则expression式来排除google-code-prettyify / ** / .js文件并手动包含非缩小的/src/prettify.js文件。

我有一个感觉,谷歌代码美化包导致的问题,因为我记得以前JSHint抱怨。

希望这会引起人们的意识,认为npm软件包可以以某种间歇的方式被打破。