Webpack2加载和提取LESS文件

时间:2016-09-23 18:03:47

标签: webpack webpack-style-loader

我正在尝试设置Webpack2来处理我的LESS文件并从中创建一个单独的CSS。但是我不断收到错误。我在查找Webpack2示例时无法概述流程,因此不确定我缺少的是什么。

我的Webpack配置:

module.exports = {
  entry: {
    'public': [
      './src/client/styles/public.js'
    ]
  },
  output: {
   ...
  },
  module: {
      {
       test: /.*\.less$/,
        loader: ExtractTextPlugin.extract({ loader: 'less-loader', fallbackLoader: 'style-loader' })
      }
    ]

  },
  plugins: [
    new ExtractTextPlugin({ filename: '[name].css', disable: false, allChunks: true })
  ]
}

public.js文件(我也尝试将less文件直接传递给具有相同结果的条目):

require('style.less')

style.less文件

a { color: red; }

错误:

ERROR in ./~/less-loader!./src/client/styles/style.less
Module parse failed: /node_modules/less-loader/index.js!/src/client/styles/style.less Unexpected token (1:2)
You may need an appropriate loader to handle this file type.
| a {
|   color: red;
| }

从消息中可以看出,较少的加载器正确传递了文件但是中断了。我试过一个空白文件,但后来我得到了:

TypeError: text.forEach is not a function

版本:

"extract-text-webpack-plugin": "^2.0.0-beta.4",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"style-loader": "^0.13.1",
"webpack": "^2.1.0-beta.25",
"webpack-dev-server": "^2.1.0-beta.5",
"yargs": "~3.5.4"

可能是什么问题?

2 个答案:

答案 0 :(得分:3)

好的..让它合作:

 loader: ExtractTextPlugin.extract({ 
     loader:[ 'css', 'less' ], 
     fallbackLoader: 'style-loader' 
 })

编辑这是针对Webpack v2的 - 感谢@thelastshadow关于Webpack 4问题here的说明。

答案 1 :(得分:0)

您可能还需要使用样式或css加载器等附加负载。来自Docs

''

less-loader只处理对CSS的处理。然后,Webpack需要知道如何在将CSS提取出来之前将其合并。

相关问题