Webpack - 在所有其他 scss 模块中自动包含一个配置 scss 文件
Webpack - include automatically a config scss file in all the other scss module
我有这样一个关于样式文件的项目结构:
client/
config-style.scss
------components/
------style.scss
-----------------my_component/
-----------------style.scss
在所有 style.scss 文件中,都有特定组件的本地样式。
在 config-style.scss 中有所有其他文件使用的变量,例如:
$font-size-large: 30px
实际上我在每个 style.scss 文件中导入 config-style.scss 文件使用:
@import "../style.scss";
我还使用 webpack 生成带有 ExtractTextPlugin
的 main.scss 文件
{
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
modules: true,
importLoaders: 1,
localIdentName: '[name]-[local]___[hash:base64:5]'
}
},
{ loader: 'sass-loader', options: { sourceMap: true } }
]
})
}
有没有办法告诉 webpack 在所有其他 .scss 文件中自动包含 config-style.scss?
是的,有一种方法可以注入常见的 scss 文件。您可以在选项下指定您的导入。也可以提供 includePaths。这是语法。让我知道它是否适合你:)
使用 Dart Sass 和现代 API:
{
loader: "sass-loader",
options: {
additionalData: '@import "config-styles";',
sassOptions: {
includePaths: ['src/styles']
}
}
}
使用旧的 API:
{
loader: "sass-loader",
options: {
data: '@import "config-styles";',
includePaths: ['src/styles']
}
}
这在最新版本 sass-loader
中已更改:
{
loader: 'sass-loader',
options: {
additionalData:
'@import "config-styles";',
},
}
我有这样一个关于样式文件的项目结构:
client/
config-style.scss
------components/
------style.scss
-----------------my_component/
-----------------style.scss
在所有 style.scss 文件中,都有特定组件的本地样式。
在 config-style.scss 中有所有其他文件使用的变量,例如:
$font-size-large: 30px
实际上我在每个 style.scss 文件中导入 config-style.scss 文件使用:
@import "../style.scss";
我还使用 webpack 生成带有 ExtractTextPlugin
的 main.scss 文件 {
test: /\.(css|scss)$/,
loader: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: [
{
loader: 'css-loader',
options: {
sourceMap: true,
modules: true,
importLoaders: 1,
localIdentName: '[name]-[local]___[hash:base64:5]'
}
},
{ loader: 'sass-loader', options: { sourceMap: true } }
]
})
}
有没有办法告诉 webpack 在所有其他 .scss 文件中自动包含 config-style.scss?
是的,有一种方法可以注入常见的 scss 文件。您可以在选项下指定您的导入。也可以提供 includePaths。这是语法。让我知道它是否适合你:)
使用 Dart Sass 和现代 API:
{
loader: "sass-loader",
options: {
additionalData: '@import "config-styles";',
sassOptions: {
includePaths: ['src/styles']
}
}
}
使用旧的 API:
{
loader: "sass-loader",
options: {
data: '@import "config-styles";',
includePaths: ['src/styles']
}
}
这在最新版本 sass-loader
中已更改:
{
loader: 'sass-loader',
options: {
additionalData:
'@import "config-styles";',
},
}