webpack4でTailwind CSSのファイルサイズ削減までやってみた
Tailwind CSS
https://tailwindcss.com
作ったもの
Simple Collage Maker
ブラウザ上でローカルの画像ファイルを読み込み、連結して一枚の画像にするツール。
webpack + Vue.js + Tailwind CSS。CSSのファイルサイズ約8KB。(普通にMinifyしただけだと600KBくらいになります。)
インストール
webpackはインストール済みとして、CSSローダー類とTailwind CSSをインストールします。
$ npm i -D css-loader postcss-loader tailwindcss
CSSファイルを外部ファイルに出力してファイルサイズ削減もしたいので以下もインストールします。
$ npm i -D mini-css-extract-plugin @fullhuman/postcss-purgecss
設定
webpack4
// ...
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
// ...
plugins: [
new MiniCssExtractPlugin({
filename: "style.css"
}),
// ...
],
module: {
rules: [
{
test: /\.css$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
{ loader: "css-loader", options: { importLoaders: 1 } },
{ loader: "postcss-loader" }
]
},
// ...
]
}
};
use
でloaderの順番を間違えるとちゃんと動かずハマります。一応、BulmaなどでSassを使う場合は次の様な感じになります。(TailwindでSassが使えるかどうかは未確認です。)
{
test: /\.(sa|c|sc)ss$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
{ loader: "css-loader", options: { importLoaders: 1 } },
{ loader: "postcss-loader" },
{ loader: "sass-loader" }
]
},
PostCSS
const purgecss = require("@fullhuman/postcss-purgecss")({
content: ["./src/**/*.html", "./src/**/*.vue"],
defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
});
module.exports = {
plugins: [
require("tailwindcss"),
require("autoprefixer"),
...(process.env.NODE_ENV === "production" ? [purgecss] : [])
]
};
content
で解析対象のファイルを指定。defaultExtractor
は理解してません。最後の方、webpackがproductionモードの時のみpurgecssが呼び出される様になってます。...
はスプレッド構文ですね。
Tailwind CSS
module.exports = {
theme: {
fontFamily: {
display: ["Berkshire Swash", "sans-serif"]
}
},
variants: {},
plugins: []
};
デフォルトのフォントを弄っただけです。
使う
CSSファイルをmain.jsなどからインポートして使います。
@tailwind base;
@tailwind components;
.button {
@apply shadow bg-gray-700 text-white font-bold py-2 px-4 rounded inline-block items-center text-center mb-2;
}
.button:hover {
@apply bg-gray-600;
}
.button:focus {
@apply outline-none;
}
/* ... */
@tailwind utilities;
以上です。
Author And Source
この問題について(webpack4でTailwind CSSのファイルサイズ削減までやってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/xoihazard/items/ce337600fae9491c963b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .