同じセットアップと構成で AWS にデプロイされた 2 つの angular-fullstack アプリの間で問題が発生しています。
同じ設定を使用しているにもかかわらず、socket.io-client/socket.io.js が適切に提供されていないようです。
socket.io.js を取得しようとするとエラー 400 (不正な要求) が発生し、「io が定義されていません」と表示されるようです。
このコードに絞り込みました。
var socketio = require('socket.io')(server, {
serveClient: (config.env === 'production') ? false : true,
path: '/socket.io-client'
});
serveClient を常に true に設定すると、常にクライアントにサービスを提供しているため、機能するようです。
これが事実である場合、なぜ多くのリソースがオンラインで実動用に serveClient を false に設定するのでしょうか? あるアプリでは機能しますが、他のアプリでは機能しません。
編集: serveClient: true を使用して AWS にデプロイしただけです。うまくいきません。しかし、どうやらそれは私のローカルで動作します。
編集 2:npm install
動作中のアプリを実行しましたが、現在は壊れているため、パッケージで何かが壊れている可能性があります。
NODE_ENV=production
編集3:同じ問題の後にテストを行ったgrunt build:dist
ので、パッケージの1つに問題があるはずです。