我已经设置了我的global.css文件,我将其导入到index.js中
--root {
--main-color: red;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
index.js
import "./global.css";
import App from "./App.svelte";
const app = new App({
target: document.body
});
我的webpack设置
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "dist")
},
module: {
rules: [
{
test: /\.(html|svelte)$/,
exclude: /node_modules/,
use: {
loader: "svelte-loader",
options: {
emitCss: true,
hotReload: true
}
}
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: { loader: "style-loader", options: { sourceMap: true } },
use: [
{ loader: "css-loader", options: { sourceMap: true } },
{
loader: "postcss-loader",
options: {
sourceMap: true,
ident: "postcss",
plugins: loader => [
require("postcss-import")({}),
require("postcss-preset-env")(),
require("cssnano")()
]
}
}
]
})
}
]
},
plugins: [new HtmlWebpackPlugin(), new ExtractTextPlugin("styles.css")]
};
非常适合为整个应用程序设置全局CSS。但是我正在尝试在苗条的组件中使用--main-color。有没有办法将它们注入所有组件的CSS?
自从我首先导入global.css以来,它应该工作,因为它首先发出--root {}文件,然后发出其余的组件样式。
答案 0 :(得分:1)
我正忙于此,尝试其他Webpack设置等,看到输出CSS应该工作,我只是找不到为什么它不工作。我写这篇文章是在最后一次尝试之前,这浪费了另一个小时。我终于找到了错误。
我没有正确输入:root{}
,而没有使用--root{}
。无论如何,我都会发布它,以防有人遇到相同的错误。
答案 1 :(得分:0)
在下面的主要组件中打印代码
:global(:root){
--header-color: purple
}
使用其他文件即可:
h1{
color: var(--header-color);
}