如何使用webpack打包图片?

7
我正在使用webpack模块打包器开发一个Angular2应用程序。我已经添加了file-loader来加载图片文件,例如jpg、gif、png等。但是当我运行构建命令时,这些图片文件并没有被打包。以下是我的配置文件: webpack.config.js (仅图片加载器配置)
{
    test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)(\?v=.+)?$/,
    loader: 'file-loader?name=assets/[name].[hash].[ext]'
},

我已经将文件夹中的图片包含在我的HTML模板中,如下所示:
<img src="/asset/img/myImg.png"/>

在我的 CSS 中也有:
#myBackground {
    background: background: #344556 url(/assets/img/background.jpg) center/cover;
}

但是当我构建整个应用程序时,图像并没有放置在我在webpack配置中指定的资产文件夹中。
现在最奇怪的事情是,字体使用相同的配置,并且它们被创建在资产文件夹内。这是我在style.css中包含字体的CSS:
@font-face {
    font-family: 'robotolight';
    src: url("../fonts/roboto-light-webfont.eot");
    src: url("../fonts/roboto-light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/roboto-light-webfont.woff2") format("woff2"), url("../fonts/roboto-light-webfont.woff") format("woff"), url("../fonts/roboto-light-webfont.ttf") format("truetype"), url("../fonts/roboto-light-webfont.svg#robotolight") format("svg");
    font-weight: normal;
    font-style: normal;
 }

这个字体的所有文件,如svg、ttf、woff等,在构建后可以在assets文件夹中找到。请问为什么使用相同的配置/加载器时,图像没有被创建到资产文件夹中,但字体文件却有?
1个回答

3
可能是与此问题重复:这个 缺少一些加载器(extract-loader和html-loader)
否则,如果这些静态资源直接从HTML中包含,您可以尝试通过这个方便的Webpack插件手动复制这些资源。

将文件从src复制到dist对我有用(handlebars模板) - Nasia Makrygianni

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