Next.js: Ajouter un fichier d'entrée pour ajouter quelque chose sur les pages (comme des polyfills).

Créé le 3 févr. 2017  ·  3Commentaires  ·  Source: vercel/next.js

// in next.config.js

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

// or

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

Commentaire le plus utile

Voici une solution de contournement pour le moment :

Ajouter import "../entry/server.js"; dans pages/_document.js et ajouter le code ci-dessous à 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;
  },
};

Tous les 3 commentaires

Voici une solution de contournement pour le moment :

Ajouter import "../entry/server.js"; dans pages/_document.js et ajouter le code ci-dessous à 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;
  },
};

Le code ci-dessus crée un tableau entry imbriqué. Est-ce que c'est ce qu'il faut, ou devrait-il y avoir une propagation:

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;
  },
};

Oui @jcheroske votre suggestion est correcte.
Je vais mettre à jour le code d'origine.

Et je clos ce sujet.

Cette page vous a été utile?
0 / 5 - 0 notes