create-react-app で自動生成される CSS や JS へのパスを変更する方法
create-react-app
で作成したアプリでは、デフォルトでは CSS や画像や JS へのパスが
/static/css/main.xxxxxxxx.chunk.css
、
/static/media/...
、
/static/js/...chunk.js
のようになっています。
何らかの事情でこれを変えたいときがあります。
今回はこれらのパスを変更する方法をご紹介します。
設定ファイルを表示させる
まずはプロジェクトのルートディレクトリでnpm run eject
のコマンドを入力して、
設定ファイルを出現させます。
実はcreate-react-app
をしただけでは、細かい設定をするためのファイル群は隠れたままなのです。
eject によって などの設定ができるようになります。
実行後はルートディレクトリにconfig
ディレクトリが生成されます。
パスを書き換える
webpack の設定ファイルconfig/webpack.config.js
を編集します。
長大なファイルなので、ファイル内検索でstatic
を検索します。
webpack.config.js1...2filename: isEnvProduction3? 'static/js/[name].[contenthash:8].js' // ← ここを変える4: isEnvDevelopment && 'static/js/bundle.js',5// TODO: remove this when upgrading to webpack 56futureEmitAssets: true,7// There are also additional JS chunk files if you use code splitting.8chunkFilename: isEnvProduction9? 'static/js/[name].[contenthash:8].chunk.js' // ← ここを変える10: isEnvDevelopment && 'static/js/[name].chunk.js',11...12options: {13limit: imageInlineSizeLimit,14name: 'static/media/[name].[hash:8].[ext]', // ← ここを変える15},16...17options: {18name: 'static/media/[name].[hash:8].[ext]', // ← ここを変える19},20...21new MiniCssExtractPlugin({22// Options similar to the same options in webpackOptions.output23// both options are optional24filename: 'static/css/[name].[contenthash:8].css', // ← ここを変える25chunkFilename: 'static/css/[name].[contenthash:8].chunk.css', // ← ここを変える26}),27...
JavaScript のパスは前の2つ、
画像ファイルなどのパスは中の2つ、
CSS のパスは後の2つを変更すれば十分です。
ファイルを読み込んでおらず構造もつかめていないので、両方必要かはわかりません。
お役に立てれば幸いです。
では