webpack - Webpack watch 和 Font Awesome:缺少 webfont 文件
问题描述
我将 Webpack 4.x 与 FontAwesome 5 Pro 一起使用,并clean-webpack-plugin
在每次构建时清理 dist 目录。我面临的问题是在初始 Webpack 运行后缺少 webfonts 文件(如 *woff 等)。这是它的样子:
watch
在启用的开发模式下启动 Webpack所有 css、js 和字体文件都使用散列名称放入
dist
,我还可以在那里看到 *woff 文件我对我观看的任何 js 或 css 文件进行任何更改以触发 webpack-watch
clean-webpack-plugin
启动并清理dist
目录Webpack 再次构建所有内容,将我所有的 js/css 和 Font Awesome css js 文件放入
dist
但不放入字体文件,因此所有*woff
文件都完全丢失了。
我的 Font Awesome 导入看起来像这样
import '@fortawesome/fontawesome-pro/css/all.css';
all.css
有对所有 webfont 文件的引用,那么为什么 Webpack 不将它们包含在构建中呢?
解决方案
我遇到了完全相同的问题(除了使用 font-awsome 之外),并且能够通过使用 url-loader 而不是 file-loader 来解决这个问题,如果这是你的选择的话。最终结果是它将通过 css 中的 data uri 内联字体,而不是在 dist 文件夹中创建字体文件。这样做的含义在这里得到了很好的解释:https ://www.zachleat.com/web/web-font-data-uris/
我的相关 webpack 配置:
rules: [
// other rules...
// font rule
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
loader: 'url-loader?limit=100000',
}
]
推荐阅读
- reactjs - 如何在 WebView (react-native-webview) 中注入 React 组件?
- android - LiveData 不更新
- python - 如何将 Python 类实例方法调用一次限制为一个?
- postgresql - 服务器意外关闭连接 PSQL 复制
- jenkins - Jenkinsfile:如何根据分支名称参数化凭据 ID?
- javascript - 将 tensorflow.js 放入 React 组件中
- c# - 如何在 Razor Pages 中更改 DisplayFor 返回的文本?
- javascript - 如何在表格中添加链接
- swift - 如何快速将值与 Payfort 特定的验证 OTP 集成?
- mysql - 使用 vb.net 中的 datagridview 从数据库显示数据的问题