1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Vue CLI 4.0でCache Bustingにクエリストリングを用いる

Posted at

vue.config.jsを特に編集していなければbuild時にハッシュ付きのファイルが生成されると思いますが、様々な理由によりハッシュ付きのファイルが生成されるのは不味い時、人はクエリストリングでキャッシュバスティングを行いたくなるものでしょう。

vue.config.js
module.exports = {
  filenameHashing: false,
  chainWebpack: config => {
    config.output.filename('js/[name].js?[contenthash:8]');
    config.output.chunkFilename('js/[name].js?[contenthash:8]');
    config.plugin('extract-css').tap(args => {
      (args[0].filename = 'css/[name].css?[contenthash:8]'),
      (args[0].chunkFilename = 'css/[name].css?[contenthash:8]');
      args[0].allChunks = true;
      return args;
    });
  }
};

filenameHashing: false でハッシュ付きファイルの生成を無効にします。
chainWebpackでwebpackの設定を上書きします。

この設定でいざbuildすると、Vue CLIの場合head内にpreloadが追加されますが
同時に .map ファイルもpreloadに追加されてしまいます。

vue.config.js
config.plugin('preload').tap(args => {
  args[0].fileBlacklist = [/\.map\?(.+?)$/, /hot-update\.js$/]
  return args
});

同様に上記の設定を追加すれば良いと思っていたのですがエラーで解決出来なかったため productionSourceMap: false を追加しました。
build時にsourcemapファイルは特に必要ないしpreloadから.mapの文字列は消え去ったのでこれで良しとします。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?