suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Webpack-Konfigurationsproblem mit mehreren Einträgen, das gepackte Ergebnis ist, dass jeder HTML-Code auf alle gepackten JS-Dateien verweist

Genau wie der Titel
Wie soll ich es konfigurieren, damit HTML die entsprechende js-Datei mounten kann?
Da die Datei einen Hash hat, gibt es keine Möglichkeit, sie mit htmlWebpackPlugin zu schreiben. Oder gibt es eine Möglichkeit, dieses Problem zu lösen?

黄舟黄舟2777 Tage vor802

Antworte allen(2)Ich werde antworten

  • 迷茫

    迷茫2017-06-30 09:57:12

    可不可以在plugins中定义多个HtmlWebpackPlugin, 每个Plugin中指定对应的Chunk,如下

    module.exports = {
      entry: {
        'page1': './apps/page1/scripts/main.js',
        'page2': './apps/page2/src/main.js'
      },
      output: {
        path: __dirname,
        filename: "apps/[name]/build/bundle.js"
      },
      plugins: [
        new HtmlWebpackPlugin({
          inject: false,
          chunks: ['page1'],
          filename: 'apps/page1/build/index.html'
        }),
        new HtmlWebpackPlugin({
          inject: false,
          chunks: ['page2'],
          filename: 'apps/page2/build/index.html'
        })
      ]
    };

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-06-30 09:57:12

    楼上的做一些修改

    var getHtmlConfig = function(name){
        return {
            template    : './src/view/' + name + '.html',
            filename    : 'view/' + name + '.html',
            inject      : true,
            hash        : true,
            chunks      : ['common', name]
        };
    };
    plugins: [
        new HtmlWebpackPlugin( getHtmlConfig(name1)),
        new HtmlWebpackPlugin( getHtmlConfig(name2)),
        new HtmlWebpackPlugin( getHtmlConfig(name3))
    ]

    output: {
        path: './dist',
        publicPath : '/dist',
        filename: 'js/[name].js'
    },

    你把原来的文件放在src/view下面...
    生产的文件会放在dist/'view/' + name + '.html'

    Antwort
    0
  • StornierenAntwort