我的目标是从Javascript文件中创建一个包含所有主题和颜色的SASS和CSS文件,以便我可以迭代它们。
我有一个名为themes.js的文件,其中包含两个对象,分别保存着所有的颜色模式:colorPalette和themes。我将这些对象导入到我的入口点(./src/index.js)中。入口点使用JS来遍历所有调色板和主题,创建一个大的SASS字符串。使用HtmlWebpack插件,我可以将此打印到DOM中。然而,我的主要目标是创建一个包含此输出字符串的SASS文件。我已经尝试使用sass、style和css加载器以及miniCssExtract和textExtract插件来捕获此字符串作为SASS文件。我已经对配置进行了一些调整(添加多个插件、删除所有插件等),但以下是我最新的迭代结果:
我有一个名为themes.js的文件,其中包含两个对象,分别保存着所有的颜色模式:colorPalette和themes。我将这些对象导入到我的入口点(./src/index.js)中。入口点使用JS来遍历所有调色板和主题,创建一个大的SASS字符串。使用HtmlWebpack插件,我可以将此打印到DOM中。然而,我的主要目标是创建一个包含此输出字符串的SASS文件。我已经尝试使用sass、style和css加载器以及miniCssExtract和textExtract插件来捕获此字符串作为SASS文件。我已经对配置进行了一些调整(添加多个插件、删除所有插件等),但以下是我最新的迭代结果:
var config = {
module: {
rules: [
{
test: /\.scss$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['style-loader','css-loader', 'sass-loader']
})
}
]
}
}
var clientConfig = ({ mode, presets } = { mode: "production", presets: [] }) => {
return webpackMerge(
{
mode,
plugins: [ new HtmlWebpackPlugin()]
},
modeConfig(mode),
presetConfig({ mode, presets }),
Object.assign({}, config, {
name:"main",
entry: "./src/index",
output: {
path: path.resolve(__dirname +'dist'),
filename: "bundle.js"
}
})
)
}
module.exports = [clientConfig]
我知道webpack输出的文件是运行时文件,它是多个模块的数组,被封装起来,但我不知道如何(或是否应该)使用它来生成我的SASS文件。我感觉自己对如何处理webpack还有些疑惑,希望能得到帮助。