Javascript 在React中使用Web包编译sass不起作用

Javascript 在React中使用Web包编译sass不起作用,javascript,css,reactjs,webpack,sass,Javascript,Css,Reactjs,Webpack,Sass,我使用create react app创建了一个项目, 并在项目中安装了node-sass和sass-loader, 还在webpack.config.js中配置了sass,但不起作用。 这是我的webpack.config.js配置 “严格使用”; //样式文件正则表达式 常量cssRegex=/\.css$/; 常量cssModuleRegex=/\.module\.css$/; const sassRegex=/\(scss|sass)$/; const sassModuleRegex=

我使用
create react app
创建了一个项目, 并在项目中安装了
node-sass
sass-loader
, 还在
webpack.config.js
中配置了sass,但不起作用。 这是我的
webpack.config.js
配置

“严格使用”;
//样式文件正则表达式
常量cssRegex=/\.css$/;
常量cssModuleRegex=/\.module\.css$/;
const sassRegex=/\(scss|sass)$/;
const sassModuleRegex=/\.module\(scss | sass)$/;
module.exports=函数(WebPackageNV){
const isEnvDevelopment=webpackEnv==‘development’;
const isEnvProduction=webpackEnv==‘production’;
常数isEnvProductionProfile=
isEnvProduction&process.argv.包括('--profile');
const env=getClientEnvironment(path.publicUrlOrPath.slice(0,-1));
const getStyleLoaders=(cssOptions,预处理器)=>{
常量加载程序=[
isEnvDevelopment&&require.resolve('style-loader'),
ISENV生产与销售部{
加载器:MiniCssExtractPlugin.loader,
选项:paths.publicUrlOrPath.startsWith(“.”)
?{publicPath:'../'}
: {},
},
{
加载器:require.resolve('css-loader'),
选项:CSS选项,
},
{
加载器:require.resolve('postss-loader'),
选项:{
标识:'邮政编码',
插件:()=>[
需要('PostSS-flexbugs-fixes'),
需要('postss-preset-env')({
自动刷新器:{
flexbox:‘no-2009’,
},
阶段:3,,
}),
postsssnormalize(),
],
sourceMap:isEnvProduction&应使用sourceMap,
},
},
].过滤器(布尔值);
if(预处理器){
装载机推送(
{
加载器:require.resolve('resolve-url-loader'),
选项:{
sourceMap:isEnvProduction&应使用sourceMap,
},
},
{
加载器:require.resolve(预处理器),
选项:{
sourceMap:true,
},
}
);
}
返回装载机;
};
返回{
模式:isEnvProduction?“production”:isEnvDevelopment&“development”,
//在生产早期停止编译
保释金:艾森瓦生产,
开发工具:isEnvProduction
?应该使用源地图吗
“源地图”
:错
:isEnvDevelopment&“廉价模块源代码映射”,
条目:[
isEnvDevelopment&&
require.resolve('react-dev-utils/webpackHotDevClient'),
//最后,这是您的应用程序代码:
path.appIndexJs,
].过滤器(布尔值),
输出:{
//生成文件夹。
路径:isEnvProduction?路径。appBuild:未定义,
//向输出中生成的require()添加/*filename*/注释。
路径信息:isEnvDevelopment,
文件名:isEnvProduction
?'static/js/[name].[contenthash:8].js'
:isEnvDevelopment&“static/js/bundle.js”,
//TODO:升级到网页包5时删除此项
未来排放资产:正确,
//如果使用代码拆分,还存在其他JS块文件。
chunkFilename:isEnvProduction
?'static/js/[name].[contenthash:8].chunk.js'
:isEnvDevelopment&“static/js/[name].chunk.js”,
publicPath:path.publicUrlOrPath,
//将sourcemap条目指向原始磁盘位置(在Windows上格式为URL)
DevToolModuleFileName模板:isEnvProduction
?信息=>
路径
.relative(path.appSrc,info.absoluteResourcePath)
.替换(/\\/g,“/”)
:isEnvDevelopment&&
(info=>path.resolve(info.absoluteResourcePath.replace(/\\\\/g,“/”),
//防止多个Web包运行时发生冲突(来自不同的应用程序)
//在同一页上使用。
jsonpFunction:`webpackJsonp${appPackageJson.name}`,
//这默认为“窗口”,但通过将其设置为“this”,则
//构建的模块块也适用于web workers。
globalObject:'这',
},
优化:{
最大限度地减少生产,
最小值:[
//这仅用于生产模式
新的TerserPlugin({
三种选择:{
解析:{
ecma:8,
},
压缩:{
ecma:5,
警告:错误,
//由于一个看似有效的代码出现问题而禁用:
// https://github.com/facebook/create-react-app/issues/2376
//有待进一步调查:
// https://github.com/mishoo/UglifyJS2/issues/2011
比较:错,
//由于Terser中断有效代码的问题而禁用:
// https://github.com/facebook/create-react-app/issues/5250
//有待进一步调查:
// https://github.com/terser-js/terser/issues/120
内联:2,
},
裂口:{
萨法里10:是的,
},
//添加用于在devtools中分析的
保留类名:isEnvProductionProfile,
保留名称:isEnvProductionProfile,
输出:{
ecma:5,
评论:错,
//启用此选项是因为未使用默认值正确缩小表情符号和正则表达式
// https://github.com/facebook/create-react-app/issues/2488
仅ascii_:正确,
},
},
sourceMap:shouldUseSourceMap,
}),
//这仅用于生产模式
新的OptimizeCSSAssetsPlugin({
cssProcessorOptions:{
解析器:safepostsssparser,
地图:应该使用源地图
? {
//`inline:false`强制将源映射输出到
//单独文件