npmでインストールしたパッケージもwebpackで使用する事が出来ます。
web画面開発ではcssも使用する機会が多くあります。
今回はwebpackの実行時にcssファイルもバンドルされるようにします。
なお、前回までの内容の続きになります。
対象ファイル
以下のようにcssファイルを追加します。
.
├── node_modules
├── package-lock.json
├── package.json
├── src
│ ├── js
│ │ ├── index.js
│ │ └── test.mjs
│ ├── css
│ │ └── style.css
│ └── index.html
└── webpack.config.js
ファイルの内容
style.css、index.js以外は前回と同じになります。
style.css
今回は h1 タグの文字の色を赤色にします。
h1 {
color: red;
}index.js
webpackはimportを辿ってバンドルファイルを作成するので、index.js内でcssファイルをimportします。
import {sample} from './test.mjs'
import '../css/style.css'
console.info(sample());cssを読み込み為のパッケージ
webpackでcssを読み込むには以下の2つのパッケージを使用します。
- css-loader
- style-loader
パッケージのインストール
以下のコマンドを実行してパッケージをインストールします。
npm i --save-dev css-loader style-loaderwebpackの設定
webpack.config.js を修正します。module: の部分を追記します。
'use strict'
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
mode: 'development',
entry: './src/js/index.js',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist')
},
plugins: [
new HtmlWebpackPlugin({ template: './src/index.html' })
],
module: {
rules: [
{
test: /\.(css)$/,
use: [
{
// Adds CSS to the DOM by injecting a `<style>` tag
loader: 'style-loader'
},
{
// Interprets `@import` and `url()` like `import/require()` and will resolve them
loader: 'css-loader'
}
]
}
]
}
}説明
rules
rules にパッケージを使用する際のルールを記載します。
test
test にはパッケージが対象とするファイルの形式を指定します。正規表現で指定します。
use
use にロードするパッケージを記載します。
webpackの実行
webpackを実行します。
npx webpack前回と同様ですが、distディレクトリ以下にmain.jsとindex.htmlが出力されます。
ブラウザからdistディレクトリ以下にあるindex.htmlを開きます。
h1タグの文字が赤文字になっている事が確認出来ます。
