LoginSignup
0
0

More than 1 year has passed since last update.

[簡易メモ]webpackのautoprefixerが共通scssで効かなかったので対応

Posted at

現象

autoprefixer

https://github.com/postcss/autoprefixer
公式通り設定したが、
各module.scssの記述は反映されるが、
共通scssの記述が反映されなかった。

環境

"webpack": "5.53.0
"autoprefixer": "^10.3.5",
"css-loader": "^5.2.7",
"postcss-scss": "^4.0.0",
"postcss": "^8.3.7",
"sass": "^1.42.1",
"sass-loader": "^12.1.0",

構成.md
 root
 ┣ app
 │ ┣ src
 │ │ ┣ components
 │ │ │ ┣ hoge.module.scss
 │ │ │ └ hoge.tsx 
 │ │ └ styles
 │ │   ┣ common.scss
 │ │   └ _global-variables.scss
 │ └ webpack
 │   └ webpack.config.js
 ┣ package.json
 └ postcss.config.js  
webpack.config.js
 const path = require('path');
 const BASE_PATH = path.resolve(__dirname, '..');
 
 module.exports = {
   // 省略
   module: {
     rules: [
       {
         test: /.(sass|scss|css)$/,
         use: [
           {
             loader: 'css-loader',
             options: {
               modules: { /* 省略 */ },
               importLoaders: 2,
             },
           },
           {
             loader: 'sass-loader',
             options: {
               additionalData: '@import "global-variables";',
               sassOptions: {
                 includePaths: [path.resolve(BASE_PATH, 'src/styles')],
               },
             },
           },           
           {
             loader: 'postcss-loader',
             options: { plugins: [autoprefixer] },
           },
         ]
       }
     ]
   }
 }
common.scss
body {
  text-size-adjust: 100%;
}

スクリーンショット 2021-11-11 17.03.59.png

hoge.module.scssautoprefixer は効いていたが
common.scssautoprefixer が効いていなかった

修正

'sass-loader'を'postcss-loader'の下に記述
loaderは下から実行されるらしい

webpack.config.js
 const path = require('path');
 const BASE_PATH = path.resolve(__dirname, '..');
 
 module.exports = {
   // 省略
   module: {
     rules: [
       {
         test: /.(sass|scss|css)$/,
         use: [
           {
             loader: 'css-loader',
             options: {
               modules: { /* 省略 */ },
               importLoaders: 2,
             },
           },
           {
             loader: 'postcss-loader',
             options: { plugins: [autoprefixer] },
           },
           {
             loader: 'sass-loader',
             options: {
               additionalData: '@import "global-variables";',
               sassOptions: {
                 includePaths: [path.resolve(BASE_PATH, 'src/styles')],
               },
             },
           }
         ]
       }
     ]
   }
 }

スクリーンショット 2021-11-11 17.02.19.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0