TypeScript、React、Nextを使ったWebアプリケーションに関して、
本番環境でWebpack周りのエラーが発生したので、これを機にWebpackについて勉強してみる
2025/3/29
メモ程度に作ったやつなので、参考にならない可能性高いです。
他の方が作成してくれた参考になる記事はこちら。
Webpackって何?(ざっくり)
- 複数のJavaScriptファイルを一つのファイルにまとめるツールのこと
- バンドル
- 一つのファイルにまとめること
- モジュールハンドラ
- モジュールを一つのファイルにまとめて出力するツールのこと
Webpackがあると何が嬉しい?
複数のJavaScriptを一つにまとめることで、ブラウザからのリクエスト数を減らし、ファイル転送の最適化が可能となる
つまり、Webpackがあると、以下のことができる
- 開発時は機能をファイルごとに分割することができる
- 実行時は一つのファイルとしてブラウザに提供することができる
TypeScriptを使ってバンドルしてみる
1 必要なパッケージをインストールする
npm install --save-dev babel-loader @babel/core @babel/preset-env @babel/preset-react @babel/preset-typescript
2 webpack.config.jsの設定をする
webpack.config.js
const path = require('path');
module.exports = {
mode: 'development', // または 'production'
entry: './src/index.tsx', // 適切なエントリーファイルを設定してください
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
extensions: ['.ts', '.tsx', '.js', '.jsx'],
alias: {
'@': path.resolve(__dirname, 'src'), // 適切なエイリアスを設定してください
},
},
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
use: 'ts-loader',
},
],
},
};
3 バンドルしてみる
npx webpack
- バンドルすると、以下のファイルが出来上がる
├── dist
│ └── bundle.js
├── node_modules
├── package.json
├── src
│ ├── app
| ├── page.tsx
参考