Razzle: Azureでのデプロイの例?

作成日 2019年02月01日  ·  4コメント  ·  ソース: jaredpalmer/razzle

razzleアプリをAzureApp Serviceにデプロイしようとしていますが、サーバーの実行に問題があります。 アプリをビルドして、ビルドフォルダーを取得しました。 次に、このweb.configファイルを使用して、エントリポイントを_build /server.js_に変更しました。 ログとクラシックをチェックしたので、アプリは正常に動作しているようです

_🚀開始_

が表示されます。 アプリのURLにアクセスしても、何の応答もありません。 リクエストがタイムアウトしたときのエラー500。

実行中のローカルマシンでビルドを確認しました

node build/server.js

そして、すべてが期待どおりに機能します。

あなたが助けることができることを願っています。

よろしく。

stale

最も参考になるコメント

こんにちは、

これはおそらく#356に関連しています( PORTなどの環境変数はビルド時にインライン化されます)。 IISNodeは、 PORTを介してリッスンする名前付きパイプを指定しますが、Razzleはビルド時にprocess.env.PORT (おそらく3000)へのアクセスをインライン化するため、これはサーバーによって取得されません。

私たちは、この回避策を使用razzle.config.jsインライン化を防止するためにPORT

module.exports = {
    ...
    modify: (config, { target, dev }, webpack) => {
        const appConfig = Object.assign({}, config);

        // <strong i="13">@BUG</strong>: Do not inline certain env vars; https://github.com/jaredpalmer/razzle/issues/356
        if (target === 'node') {
            const idx = appConfig.plugins.findIndex(plugin => plugin.constructor.name === 'DefinePlugin');
            const { definitions } = appConfig.plugins[idx];
            const newDefs = Object.assign({}, definitions);

            delete newDefs['process.env.PORT'];
            delete newDefs['process.env.HOST'];
            delete newDefs['process.env.PUBLIC_PATH'];

            appConfig.plugins = [].concat(appConfig.plugins);
            appConfig.plugins[idx] = new webpack.DefinePlugin(newDefs)
        }

        return appConfig;
    },
};

全てのコメント4件

こんにちは、

これはおそらく#356に関連しています( PORTなどの環境変数はビルド時にインライン化されます)。 IISNodeは、 PORTを介してリッスンする名前付きパイプを指定しますが、Razzleはビルド時にprocess.env.PORT (おそらく3000)へのアクセスをインライン化するため、これはサーバーによって取得されません。

私たちは、この回避策を使用razzle.config.jsインライン化を防止するためにPORT

module.exports = {
    ...
    modify: (config, { target, dev }, webpack) => {
        const appConfig = Object.assign({}, config);

        // <strong i="13">@BUG</strong>: Do not inline certain env vars; https://github.com/jaredpalmer/razzle/issues/356
        if (target === 'node') {
            const idx = appConfig.plugins.findIndex(plugin => plugin.constructor.name === 'DefinePlugin');
            const { definitions } = appConfig.plugins[idx];
            const newDefs = Object.assign({}, definitions);

            delete newDefs['process.env.PORT'];
            delete newDefs['process.env.HOST'];
            delete newDefs['process.env.PUBLIC_PATH'];

            appConfig.plugins = [].concat(appConfig.plugins);
            appConfig.plugins[idx] = new webpack.DefinePlugin(newDefs)
        }

        return appConfig;
    },
};

こんにちは、

これはおそらく#356に関連しています( PORTなどの環境変数はビルド時にインライン化されます)。 IISNodeは、 PORTを介してリッスンする名前付きパイプを指定しますが、Razzleはビルド時にprocess.env.PORT (おそらく3000)へのアクセスをインライン化するため、これはサーバーによって取得されません。

私たちは、この回避策を使用razzle.config.jsインライン化を防止するためにPORT

module.exports = {
    ...
    modify: (config, { target, dev }, webpack) => {
        const appConfig = Object.assign({}, config);

        // <strong i="14">@BUG</strong>: Do not inline certain env vars; https://github.com/jaredpalmer/razzle/issues/356
        if (target === 'node') {
            const idx = appConfig.plugins.findIndex(plugin => plugin.constructor.name === 'DefinePlugin');
            const { definitions } = appConfig.plugins[idx];
            const newDefs = Object.assign({}, definitions);

            delete newDefs['process.env.PORT'];
            delete newDefs['process.env.HOST'];
            delete newDefs['process.env.PUBLIC_PATH'];

            appConfig.plugins = [].concat(appConfig.plugins);
            appConfig.plugins[idx] = new webpack.DefinePlugin(newDefs)
        }

        return appConfig;
    },
};

この構成を試しましたが、ローカルでコマンド 'npm run start:prod 'を試すと、assets.jsonが見つからないというエラーが発生します。 これでアドバイスしてもらえますか?

@vbutani
定義から「process.env.PUBLIC_PATH」を削除した行をコメントアウトすると機能しますか?

@vbutani
定義から「process.env.PUBLIC_PATH」を削除した行をコメントアウトすると機能しますか?

迅速な対応をしてくれた@fabianishereに感謝します。 悪いことに、提案されたコード変更を行っているときに、modifyメソッドにカスタムコードの問題が見つかりました。
あなたのコードは変更なしで完全にうまく機能します!! 作成したカスタム構成は、ハードコードされたPORT値をバンドルされたserver.jsのprocess.env.PORTに置き換えます。

どうもありがとう。 :)

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

gabimor picture gabimor  ·  3コメント

alexjoyner picture alexjoyner  ·  3コメント

Jayphen picture Jayphen  ·  4コメント

howardya picture howardya  ·  5コメント

Ronny25 picture Ronny25  ·  5コメント