升级到Webpack 3

时间:2017-07-13 21:45:43

标签: webpack webpack-file-loader

我正在升级到Webpack 2到3,我遇到了file-loader@1.0.0-beta.1的问题。这是我得到的错误:

You may need an appropriate loader to handle this file type.
| export default = __webpack_public_path__ + "foo.css"

(为了简洁,省略了完整的错误细节。这是相关部分。)

这是Webpack配置:

module: {
  rules: [{
    test: /\.scss$/,
    use: [{
      loader: 'file-loader',
      options: {
        name: '[name].css'
      }
    },
    'extract-loader',
    'css-loader',
    'sass-loader'
    fallback: 'style-loader/url'
  }
}

在我使用0.9.0之前没有错误。看看两个版本之间的区别,我发现0.9.0返回一个使用CJS格式而不是Harmony的字符串。

0.9.0

return "module.exports = " + publicPath + ";";

1.0.0-beta.1

return `export default = ${publicPath};`;

我尝试在babel-loader之后添加file-loader,但这并没有解决问题。我可以使用0.9.0,一切正常,但是我不愿意被困在那个版本。

1 个答案:

答案 0 :(得分:1)

这是file-loader测试版中的错误。默认导出的正确语法是(=在默认导出中无效):

export default "/public/path/to/file";

此错误已修复,将在下一个(测试版)版本中修复。目前,您应该使用稳定版本。目前,最新版本为0.11.2