Bundler(Webpack-05. module)

7510 ワード

1.module(スタイルを適用)


01.静的にcssを作成する

  • index.html
  • <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>webpack</title>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/reset.min.css">
        <link rel="stylesheet" href="./css/main.css" />
    </head>
    
    <body>
        <h1>Hello Webpack!!</h1>
        <img src="./images/관광고.jpg" alt="관광고">
    </body>
    
    </html>
  • static/css/main.css
  • body {
        background-color: orange;
    }

    02. main.jsでstyleを使います!



  • webpack自体はcssファイルを読み取ることができないので、エラーが発生したパッケージをインストールする必要があります!
  • 03.css-loader style-loaderパッケージインストール

    npm i -D css-loader style-loader
    // import
    const path = require("path");
    const HtmlPlugin = require("html-webpack-plugin");
    const CopyPlugin = require("copy-webpack-plugin");
    
    // export
    module.exports = {
      // 파일을 읽어들이기 시작하는 진입점 설정
      entry: "./js/main.js",
    
      // 결과물(번들)을 반환하는 설정
      output: {
        // path: path.resolve(__dirname, "dist"),
        // filename: "main.js",
        clean: true,
      },
    
      module: {
        rules: [
          {
            // .css로 끝나는 확장자를 찾는 정규표현식
            test: /\.css$/,
            use: [
              "style-loader", 
              "css-loader"
            ],
          },
        ],
      },
    
      // 번들링 후 결과물의 처리 방식 등 다양한 플러그인들을 설정
      plugins: [
        new HtmlPlugin({
          template: "./index.html",
        }),
        new CopyPlugin({
          patterns: [{ from: "static" }],
        }),
      ],
      // 개발 서버를 오픈할 때 동작시킬 수 있는 명령어
      devServer: {
        host: "localhost",
      },
    };

    04.運転

    npm run dev

    エラー
  • 相対パスを作成!(main.js)
  • import "../css/main.css";
    console.log("Webpack!");