4

我想将一些文件从*.scss扩展名转换为*.css一个,然后将它们复制到目标文件夹。

这些文件不是模块的一部分,因此我无法通过*.scss加载器(即import "myStyle.scss")导入它们。

我知道如何通过CopyWebpackPlugin插件复制文件 -

plugins: [
    new CopyWebpackPlugin([    
        { from: 'source/myStyle.scss', to: 'myStyle.css' }
    ])
]

所以现在我需要的只是将它添加一个从scssto css before 到 copying 的转换。

我怎么能做到这一点?

4

2 回答 2

6

您可以将 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();
        },
      }
    ],
  ),
]
于 2018-10-12T10:39:56.870 回答
0

你需要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')
  ]
于 2017-07-30T00:27:57.090 回答