Next.js: рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ (рдЬреИрд╕реЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓)ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдлрд╝рд░ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: vercel/next.js

// in next.config.js

module.exports = {
  entry: "./entry",
};

// or

module.exports = {
  entry: {
    client: "./entry/client",
    server: "./entry/server",
  },
};

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

рдпрд╣рд╛рдБ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╛рдп рд╣реИ:

import "../entry/server.js"; рдХреЛ pages/_document.js рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ next.config.js рдЬреЛрдбрд╝рдирд╛ред

module.exports = {
  webpack: (config) => {
    const entryFactory = config.entry;
    config.entry = () => (
      entryFactory()
        .then((entry) => {
          entry["main.js"] = [
            "./entry/client.js",
            ...entry["main.js"],
          ];
          return entry;
        })
    );
    return config;
  },
};

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣рд╛рдБ рдЕрднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрд╛рдп рд╣реИ:

import "../entry/server.js"; рдХреЛ pages/_document.js рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ next.config.js рдЬреЛрдбрд╝рдирд╛ред

module.exports = {
  webpack: (config) => {
    const entryFactory = config.entry;
    config.entry = () => (
      entryFactory()
        .then((entry) => {
          entry["main.js"] = [
            "./entry/client.js",
            ...entry["main.js"],
          ];
          return entry;
        })
    );
    return config;
  },
};

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдиреЗрд╕реНрдЯреЗрдб entry рд╕рд░рдгреА рдмрдирд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдпрд╛ рдЗрд╕рдХрд╛ рдкреНрд░рд╕рд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

module.exports = {
  webpack: (config) => {
    const entryFactory = config.entry;
    config.entry = () => (
      entryFactory()
        .then((entry) => {
          entry["main.js"] = [
            "./entry/client.js",
            ...entry["main.js"], // <-- Flatten the array?
          ];
          return entry;
        })
    );
    return config;
  },
};

рд╣рд╛рдВ @jcheroske рдЖрдкрдХрд╛ рд╕реБрдЭрд╛рд╡ рд╕рд╣реА рд╣реИред
рдореИрдВ рдореВрд▓ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред

рдФрд░ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

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

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

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

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

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

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

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