フロントエンド設定ファイルのテンプレート
package.json
npmならnpm init -y
、yarnならyarn init -y
で作成。
webpack、babelを追加。
yarn add --dev webpack webpack-cli babel-loader @babel/core @babel/preset-env
yarn add --dev sass sass-loader css-loader style-loader
yarn add --dev postcss-loader postcss autoprefixer
ブラウザのバージョン指定
JSのトランスパイルやCSSのAutoprefixer(ベンダープレフィックス処理)で参照される。
package.jsonに以下の行を追加する。
{
// 省略
// 適宜バージョンを指定する
"browserslist": "> 0.25%, not dead",
// 省略
}
last 2 versions
という指定方法もあるが、推奨されない。この指定をすると無視して良いマイナーブラウザも含めた最新2バージョンで実行できるJSにトランスパイルされるため、モダンブラウザで実行できるコードまでトランスパイルされてしまい、効率が悪いものが出力されてしまう。そのため、> 0.25%
のようにブラウザシェアで指定するなり、Firefox > 88
のようにブラウザを直接指定した方が良い。
package.json以外に指定する方法もあるっぽい。
webpack.config.js
const path = require('path');
module.exports = {
mode: process.env.NODE_ENV || 'development',
entry: './src/entry-point.js',
output: {
filename: 'output-filename.js',
path: path.resolve(__dirname, 'output-directory'),
},
module: {
rules: [
// babel-loaderの実行設定
{
use: 'babel-loader',
test: /\.js$/, // 処理対象のファイル名のパターン
include: path.resolve(__dirname, '処理対象のディレクトリ'),
},
// sass-loaderの実行設定
{
test: /\.scss$/, // 処理対象のファイル名のパターン
include: path.resolve(__dirname, '処理対象のディレクトリ'),
use: [
'style-loader',
'css-loader',
'postcss-loader',
'sass-loader'
]
}
]
}
};
babel.config.js
module.exports = {
presets: ['@babel/preset-env']
}
postcss.config.js
module.exports = {
plugins: [require('autoprefixer')]
}