[webpack] webpack.configについて
動機。
ウトコでは
레벨1-로또 미션
Webpack初使用.その際、優特科側はデフォルトのプロファイルを提供していたため、個別に設定する必要があるファイルはあまりありませんでした.でも
레벨1-유튜브 미션
Webpackをインストールして使うべき!これは言い訳ですが、このときタスクに左右されるように宝くじタスクのファイルを持ってきて、理解できないまま属性を追加しました.
레벨1-자판기
一級の最後の任務である.タスク1でWeb Packを勉強しました.これはWeb Packが終わった+フェアの親切な説明だと思います.始まる前に、私のウトコ自動販売機の任務パートナーの炳民に感謝します.ほとんど他の講師のように注意してくれました!
おかげでTypescript、Webpack、Babelなど全体的に早く伝授を受けました
これはウトコの大きなメリットだと思います.
Webpack
Webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.
module bundler 👉 モジュールのバンドル👉 モジュール(再利用可能なコードセグメント)バンドル
つまり、ブラウザでJavaScriptファイルを使用する場合は、それらをまとめるだけでWebpack!
Webpackのメリット
複数のファイルを1つのファイルにバインドすることで、HTTPリクエストを削減できます.
import문으로 가져올 수 있어요.
Webpackのインストール
npm i -D webpack webpack-cli
Webpackの本体webpackconfig.jsを開けてみよう
参考正式な書類一つ一つ検索して便利です.
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
mode: 'development', // 개발 모드
entry: './src/index.ts', // 시작 지점
resolve: { // 어떤 모듈에 대해서
extensions: ['.js', '.css', '.ts'],
},
devServer: { // 개발 서버
port: 9000,
},
devtool: 'source-map', // 소스맵 생성 여부, 방법 설정
output: { // build한 결과를 어떻게 저장할지
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: { // 자 이제 모듈 드가자~
rules: [
{
test: /\.js$/, //.js로 끝나는 친구들한테
exclude: /node_modules/, // 잠깐 이건 빼고!
use: [ // 이런 걸 적용할게요!
{
loader: 'babel-loader', // loader: 파일 전처리를 뭘로 할지!
options: {
presets: ['@babel/preset-env'],
},
},
],
},
{
test: /\.ts$/,
exclude: /node_module/,
use: {
loader: 'ts-loader', // typscript loader도 이렇게 설정을 해줬습니다.
},
},
{
test: /\.scss$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'], // 아 참~! 순서도 중요해요. 뒤에서부터 적용됩니다.
},
{
test: /.(png|jpe?g|gif|json)$/i,
loader: 'file-loader',
options: {
name: 'assets/[contenthash].[ext]', // 이런 이름으로 dist/assets/....로 저장될 겁니다.
},
},
],
},
plugins: [
new CleanWebpackPlugin(), // build할 때마다 dist를 초기화해줘요~
new HtmlWebpackPlugin({ // 번들 HTML 파일을 쉽게 생성해줘요~
template: './index.html',
}),
new MiniCssExtractPlugin({ // CSS파일을 필요로하는 JS파일만 CSS파일을 생성해줘요~
filename: 'bundle.css',
}),
],
};
Reference
この問題について([webpack] webpack.configについて), 我々は、より多くの情報をここで見つけました https://velog.io/@jhy979/Typescript-Webpackテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol