Npm 如何使用webpack发出的字体文件?
摘要:Npm 如何使用webpack发出的字体文件?,npm,fonts,webpack,font-awesome,webpack-2,Npm,Fonts,Webpack,Font Awesome,Webpack 2,摘要: webpack问题,除了bundle.js,还有font-awesome的字体文件。这些文件未在bundle.js中正确引用 详细信息: 我有一个entry.js文件,它输出到子目录(dist)的子目录(webpack)dist是独立的CDN可分发目录。这种结构是基于特定于站点生成器的原因(这与此问题无关) index.html加载webpack/bundle.js并尝试使用字体: <!DOCTYPE html> <html lang="en"> <
webpack
问题,除了bundle.js
,还有font-awesome
的字体文件。这些文件未在bundle.js
中正确引用
详细信息:
我有一个entry.js
文件,它输出到子目录(dist
)的子目录(webpack
)dist
是独立的CDN可分发目录。这种结构是基于特定于站点生成器的原因(这与此问题无关)
index.html
加载webpack/bundle.js
并尝试使用字体:
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
hello world <i class="fa fa-shower"></i>
<script src="webpack/bundle.js"></script>
</body>
</html>
如何提高对bundle.js
的这种认识,以便它在与自身相同的级别上引用其输出生成的对等点(/webpack/…
)
组件文件:
entry.js
:
import 'font-awesome/css/font-awesome.css'
module.exports = {
entry: "./entry.js",
output: {
path: __dirname + '/dist/webpack', // should use the path module
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
},
{
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file-loader"
}
]
}
};
webpack.config.js
:
import 'font-awesome/css/font-awesome.css'
module.exports = {
entry: "./entry.js",
output: {
path: __dirname + '/dist/webpack', // should use the path module
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
},
{
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file-loader"
}
]
}
};
注意:CSS文件中导入的字体不会出现此问题,到目前为止,我仅有的一种情况是将Font Awesome用作一个模块
添加解决了这个问题:
output: {
path: __dirname + '/dist/webpack', // should use the path module
filename: "bundle.js",
publicPath: "/webpack/",
},
路径应该是捆绑包和其他发出的文件输出到的路径,相对于公开站点的根(http://example.com/
)