web-dev-qa-db-fra.com

Vue-Cli: l'option 'title' pour htmlWebpackPlugin ne fonctionne pas

J'utilise vue-cli (3.4.1) et j'essaye simplement de changer le titre du document.

J'ai ajouté ce qui suit à la vue.config.js

chainWebpack: (config) => {
    config
      .plugin('html')
      .tap((args) => {
        args[0].title = 'Custom Title';
        return args;
      });
  },

et inspecté la configuration du webpack avec vue inspect --plugin html résultant en la sortie suivante

/* config.plugin('html') */
new HtmlWebpackPlugin(
  {
    templateParameters: function () { /* omitted long function */ },
    template: '<path>\node_modules\\@vue\\cli-service\\lib\\config\\index-default.html',
    title: 'Custom Title'
  }
)

Le titre de la Webapp indique toujours "Vue App".

Des idées pourquoi?

PS: je ne veux pas définir document.title = 'Custom Title' quelque part dans mon application. Je veux le titre entre le <title>- balises dans le <head> élément du document à modifier au moment de la construction.

9
Kristof Komlossy

J'ai soumis un rapport de bogue tel que recommandé par @ tony19.

tldnr: modifiez le titre dans le modèle à public/index.html qui sera utilisé au moment de la construction.

Version longue: je n'avais pas le public/index.html plus dans mon projet, apparemment je l'ai supprimé il y a quelque temps et je n'ai donc jamais utilisé la fonctionnalité de modèle. Le cli a toujours utilisé un modèle situé quelque part et donc toutes les modifications pour le htmlWebpackPlugin ne font rien.

Donc, soit vous désactivez le modèle index.html et modifiez le htmlWebpackPlugin, soit vous modifiez le modèle pour apporter vos modifications.

0
Kristof Komlossy

Je n'ai pas pu faire changer le titre du travail de webpack-config, je suppose que vue-cli remplace celui de la config plus tard. Ce qui a fonctionné pour moi, c'est de définir VUE_APP_TITLE=<custom title> dans .env et en utilisant <title><%= process.env.VUE_APP_TITLE %></title> dans index.html. Source

0
NeoTheThird