我通过相同的设置和配置在 AWS 上部署的两个 angular-fullstack 应用程序之间遇到了麻烦。
尽管具有相同的设置,但似乎 socket.io-client/socket.io.js 没有在其中一个上正确提供服务。
似乎在尝试获取 socket.io.js 时收到错误 400(错误请求),反过来又收到“io not defined”。
我把它缩小到这段代码:
var socketio = require('socket.io')(server, {
serveClient: (config.env === 'production') ? false : true,
path: '/socket.io-client'
});
似乎如果我将 serveClient 设置为始终为真,它将起作用,因为它始终为客户端服务。
如果是这样的话,为什么网上这么多资源将serveClient设置为false用于生产?它适用于一个应用程序,但不适用于另一个应用程序。
编辑:刚刚使用 serveClient: true 部署在 AWS 上。不工作。但显然它适用于我的本地。
编辑 2:npm install
为正在工作的应用程序做了一个,现在它坏了,所以可能是包坏了。
编辑 3:NODE_ENV=production
在一个相同的问题之后进行了测试,grunt build:dist
所以它应该是其中一个包的问题。