URL*_*L87 4 javascript css webpack scss-lint
我想将一些文件从*.scss扩展名转换为*.css一个,然后将它们复制到目标文件夹。
这些文件不是模块的一部分,因此我无法通过*.scss加载程序(即import "myStyle.scss")导入它们。
我知道如何通过CopyWebpackPlugin插件复制文件-
plugins: [
new CopyWebpackPlugin([
{ from: 'source/myStyle.scss', to: 'myStyle.css' }
])
]
Run Code Online (Sandbox Code Playgroud)
所以现在我所需要的就是将它添加一个从scssto css before 到 copying的转换。
我怎么能做到这一点?
您可以将CopyWebpackPlugin 插件的转换选项与node-sass. 即使用sass.renderSync函数 node-sass:
const sass = require('node-sass');
plugins: [
new CopyWebpackPlugin(
[
{
from: 'style.scss',
to: 'style.css',
transform (content, path) {
const result = sass.renderSync({
file: path
});
return result.css.toString();
},
}
],
),
]
Run Code Online (Sandbox Code Playgroud)
你需要sass-loader这个。有关更多信息,请查看https://github.com/webpack-contrib/sass-loader
更新:尝试这样的事情。
module: {
rules: [
{
test: /\.scss$/,
use: ExtractTextPlugin.extract({
use: ['css-loader', 'sass-loader']
})
}
]
},
plugins: [
new ExtractTextPlugin('myStyle.css')
]
Run Code Online (Sandbox Code Playgroud)