CRA로 프로젝트를 생성했을 때 stylus를 적용해보기
stylus-loader
가 5ver부터는 webpack5
를 최소사양으로 요구하는데 CRA
로 프로젝트를 생성하면 webpack4
가 설치되어 stylus-loader
를 4.3.3ver으로 설치해야한다.
npm install stylus stylus-loader@4.3.3 --save-dev
만약 stylus-loader
를 버전 언급 없이 그냥 설치했다면 오늘 기준으로 6.1ver이 깔려서 this.getOptions is not a function
이런 메시지를 띄우는 오류가 발생한다.
npm run eject
// ...
const stylusRegex = /\.styl$/;
// ...
module.exports = function (webpackEnv) {
// .........
return {
// .......
module: {
// ...
rules: [
// ...
{
oneOf: [
// ...
{
test: stylusRegex,
use: getStyleLoaders(
{
importLoaders: 1,
sourceMap: isEnvProduction
? shouldUseSourceMap
: isEnvDevelopment,
},
'stylus-loader'
),
},
]
}
]
}
}
// Header.styl
.red
background-color: red
header
color: blue
// Header.js
import 'components/Layout/Header.styl'
const Header = () => {
return (
<header className={'red'}>
<h2>Header~~~~~~~~~~~</h2>
</header>
)
}
export default Header
다 하고 나니까 webpack5로 바꾸자고 한다.
첨부터 플젝구성하기는 싫어서 CRA로 만든 플젝을 수정해서 webpack을 업글하려고 하는데 잘 안됐다.
연구를 좀 더 해야겠당.