【发布时间】:2021-04-21 21:36:09
【问题描述】:
我正在现有项目中配置 Webpack,并且避免更改项目结构。 在我的 scss 文件中包含以 / 开头的文件(例如 url('/fonts/mem.woff2')),我相信这是我的问题的原因。
styles.scss
@font-face {
font-family: 'MyFont';
src: url('/fonts/mem.woff2') format('woff2'),
url('/fonts/slick.woff') format('woff');
font-weight: 600;
font-style: normal;
}
还有错误:
错误:无法解析“/fonts/mem.woff2” 'D:\Programming\Demos\webpack-compact\src' 在finishWithoutResolve (D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.js:293:18) 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.js:362:15 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.js:410:5 在 eval (eval at create (D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\node_modules\tapable\lib\Hoo 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.js:410:5 在 eval (eval at create (D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\node_modules\tapable\lib\Hoo 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Descriptio 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.j 在 eval(创建时的 eval(D:\Programming\Demos\webpack-compact\node_modules\enhanced- 在 D:\Programming\Demos\webpack-compact\node_modules\enhanced-resolve\lib\Resolver.j
我的 webpack 文件如下所示:
module.exports = env => {
const isDev = env.NODE_ENV == 'dev';
return {
target: 'web',
mode: 'development',
devtool: 'inline-source-map',
entry: {
index: path.resolve(__dirname, "src", "index.js")
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist'),
},
devServer: {
contentBase: path.resolve(__dirname, 'dist'),
port: '8080',
host: 'localhost',
hot: true,
open: true,
inline: true
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
title: 'Development',
template: path.resolve(__dirname, "src", "index.html"),
filename: 'index.html',
})
],
module:{
rules: [
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'fonts/',
},
}
...
我知道如果我用 ./ 将字体路径更改为该路径,它会起作用。我的问题是,是否可以只更改 webpack 配置而不是转到所有 scss 文件并更改 url('/fonts/mem.woff2') 上的路径?
【问题讨论】:
标签: webpack webpack-file-loader webpack-5