Razzle: Azure рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкрд░ рдЙрджрд╛рд╣рд░рдг?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдлрд╝рд░ре░ 2019  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jaredpalmer/razzle

рдореИрдВ рдПрдХ Azure рдРрдк рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рдЪрдордХрджрд╛рд░ рдРрдк рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ рдРрдк рдмрдирд╛рдпрд╛ рдФрд░ рдПрдХ рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ рдорд┐рд▓рд╛ред рдлрд┐рд░, рдореИрдВрдиреЗ рдЗрд╕ web.config рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ _build/server.js_ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдк рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рд▓реЙрдЧ рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ

_ЁЯЪА рд╢реБрд░реВ_

рджрд┐рдЦрд╛рдИ рдкрдбрд╝рдирд╛ред рдЬрдм рдореИрдВ рдРрдк рдХреЗ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЕрдиреБрд░реЛрдз рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдмрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ 500 тАЛтАЛтАЛтАЛрд╣реИред

рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЪрд▓ рд░рд╣реЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЬрд╛рдБрдЪ рдХреА

node build/server.js

рдФрд░ рд╕рдм рдХреБрдЫ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд╛рджрд░ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирдорд╕реНрддреЗ,

рдпрд╣ рд╕рдВрднрд╡рдд: #356 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ (рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЬреИрд╕реЗ PORT рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдЗрдирд▓рд╛рдЗрди рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ)ред IISNode рдирд╛рдорд┐рдд рдкрд╛рдЗрдк рдХреЛ PORT рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реИрдЬрд╝рд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЗ рджреМрд░рд╛рди 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 рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реИрдЬрд╝рд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЗ рджреМрд░рд╛рди 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 рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реИрдЬрд╝рд▓ рдмрд┐рд▓реНрдб рд╕рдордп рдХреЗ рджреМрд░рд╛рди 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;
    },
};

рдореИрдВрдиреЗ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдкрд░ 'рдПрдирдкреАрдПрдо рд░рди рд╕реНрдЯрд╛рд░реНрдЯ: рдкреНрд░реЛрдб' рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВред рдЬреЗрд╕рди рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЗрд╕рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

@vbutani
рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЙрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ 'process.env.PUBLIC_PATH' рд╣рдЯрд╛рддреЗ рд╣реИрдВ?

@vbutani
рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЙрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рд╕реЗ 'process.env.PUBLIC_PATH' рд╣рдЯрд╛рддреЗ рд╣реИрдВ?

рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @fabianishere ред рдореЗрд░рд╛ рдмреБрд░рд╛, рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ рдЕрдкрдирд╛ рдХрд╕реНрдЯрдо рдХреЛрдб рдореБрджреНрджрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рдорд┐рд▓рд╛ред
рдЖрдкрдХрд╛ рдХреЛрдб рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ !! рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдХрд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣рд╛рд░реНрдб рдХреЛрдбрд┐рдд PORT рдорд╛рди рдХреЛ рдмрдВрдбрд▓ рд╕рд░реНрд╡рд░.js рдореЗрдВ process.env.PORT рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдмрд╣реБрдд - рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

gabimor picture gabimor  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pseudo-su picture pseudo-su  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kkarkos picture kkarkos  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ronny25 picture Ronny25  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

panbanda picture panbanda  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ