39 lines
801 B
JavaScript
39 lines
801 B
JavaScript
module.exports = function (api) {
|
|
const presets = [
|
|
'@babel/preset-env',
|
|
'@babel/react'
|
|
]
|
|
const plugins = [
|
|
'@babel/plugin-proposal-object-rest-spread',
|
|
'@babel/plugin-transform-runtime',
|
|
'@babel/plugin-transform-template-literals',
|
|
'@babel/plugin-proposal-class-properties'
|
|
]
|
|
|
|
if (api.env() === 'development') {
|
|
plugins.push([
|
|
'css-modules-transform', {
|
|
'generateScopedName': '[name]__[local]___[hash:base64:5]',
|
|
'preprocessCss': processSass,
|
|
'extensions': ['.css', '.scss']
|
|
}
|
|
])
|
|
}
|
|
|
|
return {
|
|
presets,
|
|
plugins
|
|
}
|
|
}
|
|
|
|
var sass = require('node-sass')
|
|
|
|
function processSass (data, filename) {
|
|
var result
|
|
result = sass.renderSync({
|
|
data: data,
|
|
file: filename
|
|
}).css
|
|
return result.toString('utf8')
|
|
}
|