如何配置Webpack在React中加载Glyphicons/Font Awesome图标

3
在 React 项目中使用 Bootstrap,运行开发环境是没有问题的。但是当我运行 npm build 打包项目时,会出现 Bootstrap 字体错误。
ERROR in ./~/bootstrap/dist/fonts/glyphicons-halflings-regular.eot
Module parse failed: /Users/xx/WorkDir/react-leap/node_modules/bootstrap/dist/fonts/glyphicons-halflings-regular.eot Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '�' (1:0)
    at Parser.pp.raise (/Users/xx/WorkDir/react-leap/node_modules/webpack/node_modules/acorn/dist/acorn.js:923:13)
    at Parser.pp.getTokenFromCode (/Users/xx/WorkDir/react-leap/node_modules/webpack/node_modules/acorn/dist/acorn.js:2831:8)

我的Webpack配置

module: {
  loaders: [
    {
      test: /\.(ttf|eot|svg|woff(2)?)(\?[a-z0-9=&.]+)?$/,
      loader: 'file-loader',
      include: paths
    }
  ]
}

Bootstrap版本:

"bootstrap": "3.3.6",
1个回答

2
我已经找到了解决方案:

webpack.config.js

 module: {
    preLoaders: [
        {test: /\.js$/, exclude: /node_modules/, loader: 'jshint-loader'}
    ],
    loaders: [
        {test: /bootstrap\/js\//, loader: 'imports?jQuery=jquery' },
        {test: /\.less$/, loader: 'style-loader!css-loader!less-loader'},
        {test: /\.css$/, loader: 'style-loader!css-loader'},
        {test: /\.woff(2)?(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/font-woff" },
        {test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=application/octet-stream" },
        {test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file" },
        {test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?limit=10000&mimetype=image/svg+xml" }
    ]
}

确保安装所有这些加载器。
npm i jshint-loader style-loader css-loader less-loader url file --save-dev

在你的文件中导入 Bootstrap,如下所示:

import bootstrap

require('bootstrap/less/bootstrap.less');

在我的情况下,fowtawesome.css文件中的“#iefix”阻止了与测试正则表达式的匹配,您必须从fotawesome.css中删除它们或编辑您的测试正则表达式以包括它们。 - mohas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接