- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对 React 做一些调查,并开始尝试使用 sass-loader 来处理 CSS/SCSS 模块。我已经完成了大部分设置,但我遇到了一个我不太确定如何解决的问题,我在以下场景中展示了它:
ComponentA.jsx
import React from 'react';
import ComponentB from './app/components/ComponentB.jsx';
// Importing Core CSS module for component A
require("./ComponentA.scss");
export default class ComponentA extends React.Component{
constructor(){
...
}
render(){
return (
<div>
<ComponentB />
</div>
);
}
}
ComponentB.jsx
import React from 'react';
// Importing CSS module for component B with some overriding content for component A
require("./ComponentB.scss");
export default class ComponentB extends React.Component{
constructor(){
...
}
render(){
return (
...
);
}
}
webpack.config.js
var path = require("path");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
devServer: {
contentBase: path.join(__dirname, "../build")
},
entry: path.join(__dirname,"../app/ComponentA.jsx"),
module:{
loaders: [
{
test: /\.jsx?$/,
loader: 'babel',
query: {
presets: ['react', 'es2015']
}
},
{
test: /\.(scss|css)$/,
loader: ExtractTextPlugin.extract(['css','sass'])
},
...
]
},
output: {
path: path.join(__dirname, "..", "build"),
filename: "bundle.js",
publicPath: "/"
},
plugins: [
new ExtractTextPlugin(
"style.css",
{ allChunks: true }
)
]
};
从这个设置开始,Webpack 按预期工作并创建了新文件 style.css(当然实际上是因为我正在开发),但是......SCSS 内容文件没有呈现在我认为的顺序。
生成的 style.css 内容排列如下:
代替:
正如我的意思,它在层次结构中。这是一个问题,因为要覆盖 Component A 基本 CSS,我需要 webpack 和 sass-loader 才能按层次结构顺序合并文件。
所以,在这之后的问题是:
我如何配置 sass-loader 在它经过树时加载模块?
或者更简单...
有更好的方法吗?
最佳答案
即使涉及样式表,您也需要将 React 中的组件视为独立的实体。它不仅与 JavaScript 和 JSX(或一般标记)有关,而且与 CSS(或 SCSS)有关。
这就是为什么通常首选的方法是使用本地 CSS 以及最低限度的全局样式。我建议您在您的情况下也这样做:在全局范围内移动 ComponentA 和 ComponentB 中的一些样式(您可以将其视为关键 CSS),并为每个样式设置覆盖它们的本地样式。
使样式本地化的方法是添加 :local
前缀,也许包装在容器中(即 ComponentA),如下所示:
:local(.ComponentA) {
background: red;
& > img{
width: 100%;
}
}
值得一提的是,这会将您的 SCSS 文件转换为内联样式。在许多情况下,这有助于提高感知性能和首次绘制。
关于reactjs - webpack 和 sass-loader 文件导入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965308/
我正在使用 webpack 开始我的学习之路,但遇到了一个问题,我认为这是由 extract-loader 引起的。 .当webpack抓取我的HTML文件时,似乎无法正常编译,在使用import.m
我正在使用 tomcat 8,在 tomcat-home/config/catalina.properties ,有关于的部分 common.loader, server.loader and sha
在使用 import 语句时,我对区分 sass-loader 和 css-loader 有点困惑。据我所知,css loader resolve import statment(@import) 和
我的 webpack 加载器数组中有这个加载器: { test: /\.scss$/, exclude: /node_modules/, loaders: ExtractTextPlugin('sty
我对 url-loader 、 file-loader 和 image-loader 感到很困惑。谁能解释一下 url-loader 、 file-loader 和 image-loader 的区别是
我有 page.css @imports index.css。 page.css 和 index.css 都有 display: flex Webpack.config.js 包含: module:
我在 webpack 中使用生产模式构建的多入口点最终 bundle 中导出的多入口编译 js 文件始终包含加载器内容。如何消除它们以及为什么包含它们? 重现 git clone https://gi
模板加载器找到模板但未加载模板 TemplateDoesNotExist at /cardpayment/ cardpayment.html Request Method: GET Reque
当我尝试运行 gradle tR (tomcatRun) 时出现此错误 A child container failed during start java.util.concurrent.Execu
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectna
我计划将 Webpack 用于一个项目,并且我正在使用 Html-loader + file-loader 设置我的工作流程,以获取带有图像动态 src 的生产 html 文件,正如 Colt Ste
我有一个巨大的 csv 文件,其中包含数百万条记录,我想使用 python 脚本将它加载到 Netezza 数据库中。我尝试了简单的插入查询,但速度非常非常慢。可以指出一些示例 python 脚本或一
我想将 ts-loader 与 babel-polyfill 一起使用,但不使用 babel-loader。但是当我尝试构建该项目时,我收到了此错误。谁能告诉我我缺少什么。 ERROR in ./sr
下面是我的 webpack.config.js 和 package.json module.exports = { entry: "./entry.js", output: { fi
我在两台不同的 PC 上遇到了一个问题。对于我的项目,我为开发安装了以下依赖项:(webpack webpack-cli @babel/core @babel/preset-env @babel/pr
模板文件保存在app目录下,但渲染时引发TemplateDoesNotExist异常: 模板加载器事后分析如下: Django 尝试按以下顺序加载这些模板: Using loader django.t
PHPUnit 手册说: If you point the PHPUnit command-line test runner to a directory it will look for *Test
我正在开发一个需要 html 的角度应用程序要提取为纯 HTML 文件的文件,同时应检查任何 要求这些图像(作为 Assets )。另外,图片是基于根路径的(所以 /images/something.
我们在 sql 加载器中遇到了问题。我们正在尝试将一个大约 46 亿行(近 340 GB)的数据文件加载到 2 个 oracle 表中,基于一些使用 Sql Loader 的条件。但是在加载了 42
我将 CSS 模块与 webpack css-loader 一起使用,然后将它们与 mini-css-extract-plugin 捆绑在一起。 这是我的配置的样子: { test: /\.c
我是一名优秀的程序员,十分优秀!