代码拉取完成,页面将自动刷新
const { loaderNameMatches, getLoader } = require('react-app-rewired')
const rewireTypescript = require('react-app-rewire-typescript')
const ruleTestMatches = (rule, value) =>
rule.test &&
((rule.test instanceof RegExp && value.match(rule.test)) ||
(typeof rule.test === 'string' && value.indexOf(rule.test) !== -1))
const ruleChildren = rule =>
rule.use || rule.oneOf || (Array.isArray(rule.loader) && rule.loader) || []
const findIndexAndRules = (rulesSource, ruleMatcher) => {
let result
const rules = Array.isArray(rulesSource)
? rulesSource
: ruleChildren(rulesSource)
rules.some(
(rule, index) =>
(result = ruleMatcher(rule)
? { index, rules }
: findIndexAndRules(ruleChildren(rule), ruleMatcher))
)
return result
}
const addBeforeRule = (rulesSource, ruleMatcher, value) => {
const { index, rules } = findIndexAndRules(rulesSource, ruleMatcher)
rules.splice(index, 0, value)
}
module.exports = (config, env) => {
config = rewireTypescript(config, env)
const cssMatcher = r => ruleTestMatches(r, '.css')
const cssLoader = getLoader(config.module.rules, cssMatcher)
const scssRules = {
test: /\.scss$/,
use: (cssLoader.use || cssLoader.loader).concat([{
loader: 'sass-loader'
}])
}
const fileLoaderMatcher = r => loaderNameMatches(r, 'file-loader')
addBeforeRule(config.module.rules, fileLoaderMatcher, scssRules)
return config
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。