const {
when,
whenDev,
whenProd,
whenTest,
ESLINT_MODES,
POSTCSS_MODES,
} = require('@craco/craco')
module.exports = {
reactScriptsVersion: 'react-scripts' /* 기본 값 */,
style: {
css: {
loaderOptions: {
// CSS 구성 옵션
// 참고: https://github.com/webpack-contrib/css-loader
}
},
sass: {
loaderOptions: {
// Sass 구성 옵션
// 참고: https://github.com/webpack-contrib/sass-loader
}
},
postcss: {
mode: 'extends' /* (기본 값) */ || 'file',
plugins: [],
env: {
autoprefixer: {
// autoprefixer 옵션
// https://github.com/postcss/autoprefixer#options
},
stage: 3 /* 참고: https://cssdb.org/#staging-process */,
features: { /* 참고: https://preset-env.cssdb.org/features */ },
},
loaderOptions: {
// postcss-loader 구성 옵션
// 참고: https://github.com/postcss/postcss-loader
}
},
},
eslint: {
enable: true /* 기본 값 */,
mode: 'extends' /* 기본 값 */ || 'file',
configure: {
// eslint 구성 옵션
// https://eslint.org/docs/user-guide/configuring
}
pluginOptions: {
// eslint 플러그인 구성 옵션
// 참고: https://github.com/webpack-contrib/eslint-webpack-plugin#options
}
},
babel: {
presets: [],
plugins: [],
loaderOptions: {
// babel-loader 구성 옵션
// 참고: https://github.com/babel/babel-loader
}
},
typescript: {
enableTypeChecking: true /* 기본 값 */,
},
webpack: {
alias: {},
plugins: {
// 플러그인 배열
add: [],
// 플러그인 생성자 이름 배열("StyleLintPlugin", "ESLintWebpackPlugin")
remove: []
},
configure: {
// webpack 구성 옵션
// 참고: https://webpack.js.org/configuration
}
},
jest: {
babel: {
addPresets: true /* 기본 값 */,
addPlugins: true /* 기본 값 */,
},
configure: {
// Jest 구성 옵션
// 참고: https://jestjs.io/docs/en/configuration
}
},
devServer: {
// devServer 구성 옵션
// 참고: https://webpack.js.org/configuration/dev-server/#devserver
},
plugins: [
// CRACO 플러그인
// 참고: https://bit.ly/3reUqet
]
}