1

ポリフィルのバンドルを作成して、intlそれを必要とするブラウザにのみロードしようとしています。

次のコードを使用して、出力フォルダーにバンドルを作成します

if (!window.Intl) {
  require.ensure(['intl/dist/Intl'], (require) => {
    window.Intl = require('intl/dist/Intl');
  }, 'intl-bundle');
}

私が最初に気付いたのは、ファイルのサイズが巨大で、すべての言語が含まれていることです。必要な言語を定義する方法はありますか?

もう 1 つの問題は、ブラウザーがファイルをダウンロードしようとすると、アプリのルート フォルダーから試行されることです。したがって、ダウンロードする代わりにhttp://mydomain/js/1.intl-bundle.js、取得しようとしますhttp://mydomain/1.intl-bundle.js

ファイルをダウンロードする場所を設定する方法はありますか?

私のwebpack.config.js出力は次のようになります。

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

最後の質問1.ですが、ファイル名の先頭にあるを削除してもintl-bundle.jsいいですか?

ありがとう

4

1 に答える 1

0

数時間の調査の後、いくつかの解決策を見つけたので、実際に私自身の質問のいくつかに答えるつもりです.

2 番目の質問についてはpublicPath、ビルドで を定義していませんでした。これが、ブラウザがドメインのルートからファイルをダウンロードしていた理由です。詳細: https://github.com/webpack/docs/wiki/configuration#outputpublicpath

output: {
  path: './js/',
  publicPath: './js/'
}

最後の質問では、次のようにチャンクに名前を付けることができます。

output: {
  chunkFilename: '[id]-[name]-[chunkhash].js'
}

これにより、チャンクの名前を決定できます。

intl ファイルのサイズを小さくするための答えはまだありません。

于 2016-03-04T17:06:26.897 に答える