如何使用 webpack 从 node_modules 目录添加真棒字体

How to add font awesome from node_modules directory using webpack

我已经使用 npm install font-awesome --save-dev 安装了 font-awesome,但现在我无法将它包含在我的项目中。下面是我的代码。

webpack.config.js

{
            test: /\.(svg|woff|woff2|ttf|eot|otf)$/,
            loader: 'file-loader?name=assets/[name].[ext]',
}

app.scss

$fa-font-path: "~font-awesome/fonts";
@import "~font-awesome/scss/font-awesome.scss";

错误

错误./~/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0 模块解析失败:/ProjectSite/node_modules/font-awesome/fonts/fontawesome-webfont.eot?v=4.7.0 意外字符“�”(1:1) 您可能需要一个合适的加载器来处理这种文件类型。

你安装了 npm file-loader 包了吗?

npm install --save-dev file-loader

我有一个 webpack 示例存储库,其中包含 font-awesome。它可能会有所帮助。你可以找到它here

通过阅读做一些研究,我终于通过在正则表达式部分添加 ([\?]?.*)$ 解决了这个问题。

{
     test: /\.(svg|woff|woff2|ttf|eot|otf)([\?]?.*)$/,
     loader: 'file-loader?name=assets/fonts/[name].[ext]',
}

您可能想尝试使用新的 webpack 版本

{
    test: /\.(svg|woff|woff2|ttf|eot|otf)([\?]?.*)$/,
    use: [
        {
            loader: 'file-loader?name=assets/fonts/[name].[ext]'
        }
    ]
}