今夜はロールバック!

ただの日記です。

TOP

WebpackでCSSファイルを扱う方法

f:id:momogaaaa:20180510232540j:plainWebpackでCSSファイルを扱う方法の備忘録。

公式チュートリアルAsset ManagementLoading CSSの部分を実施すればWebpackでCSSを扱う方法は理解することができる。今回はこのチュートリアルのCSSファイルを扱っている部分のみを抜粋する。

 

css-loader install

まずはstyle-loadercss-loaderをインストール。

npm install --save-dev style-loader css-loader

 

package.json 

上記のインストールが終わると、package.jsonはこのようになる。

devDependenciesにstyle-loadercss-loaderの2つが追加される。

{
  "name": "webpack-asset-management",
  "version": "1.0.0",
  "description": "",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack"
  },
  "devDependencies": {
    "css-loader": "^0.28.11",
    "style-loader": "^0.21.0",
    "webpack": "^4.6.0",
    "webpack-cli": "^2.0.14"
  },
  "dependencies": {
    "lodash": "^4.17.5"
  }
}

 

HTMLファイル

HTMLファイルを用意する。bundle.jsはビルドされたあとのjsファイルだ。各自の環境にあわせて定義しよう。

<!doctype html>
<html>
 <head>
   <title>Asset Management</title>
 </head>
 <body>
   <p class="hello">test</p>
   <script src="bundle.js"></script>
 </body>
</html>

 

/src/style.css

CSSは簡単なクラスを1つだけ定義しておく。

.hello {
  color: red;
}

 

/src/index.js

entry pointとなるjsファイルにはCSSファイルを読み込むために、上で作成したCSSをimportするよう一行定義する。

entry pointはindex.jsとしているが、ここも各自の環境によって異なるので注意しよう。

import './style.css';

 

 

webpack.config.js 

最後にwebpack.config.jsの設定。

moduleの部分にstyle-loadercss-loaderを指定しよう。

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  }
};

 

さいごに

WebpackでCSSを扱うにはstyle-loaderとcss-loaderが必要。

設定自体は非常に簡単。

webpack.config.jsでstyle-loaderとcss-loaderの設定をして、entry pointのjsへ読み込む対象のCSSをimportするだけで使えるようになる。

 

ビルドするときは、特別なコマンドを実行する必要はない。npm run build を実行すればOKだ。