我正在使用Webpack和 sass-loader , css-loader &amp ;;处理ReactJs项目。 URL装载机
我希望不解析字体 - 路径路径并确保它在SASS文件中的设置方式。
如果我调用绝对路径(即:http://fonts.com/my-font.eot
或/path/to/my-font.eot
),则路径无法解析。
但是,如果我使用相对路径(即:my-font.eot
或path/to/my-font.eot
), url-loader 会尝试解析路径。
在我的情况下,我需要使用相对路径(即使它产生404错误)。
我尝试排除 url-loader 中的所有字体扩展名,但Webpack不知道该怎么处理这种类型的文件,即使该文件可能不存在
这是我得到的错误:
模块解析失败:C:.... \ fonts \ my-font.eot意外字符' ' (1:1)您可能需要一个合适的加载器来处理这种文件类型。
我还试图禁用" url" css-loader的选项,但绝对没有任何反应。我想很有可能我没有正确添加选项:
{
test: /\.scss$/,
loaders: ["style-loader", "css-loader", "sass-loader"],
options: { url: false }
},
这是我目前的代码:
module: {
loaders: [
{
exclude: [
/\.html$/,
/\.(js|jsx)$/,
/\.css$/,
/\.scss$/,
/\.json$/,
/\.svg$/
],
loader: 'url',
query: {
limit: 10000,
name: 'path/dist/[name].[hash:8].[ext]'
}
},
{
test: /\.scss$/,
loaders: ["style-loader", "css-loader", "sass-loader"]
},
...
]
},
...
}
答案 0 :(得分:0)
我找到了解决方案。我没有正确添加 css-loader 选项。
因为我没有找到使用数组语法直接添加选项的方法,所以我不得不切换到字符串语法。
此代码不起作用:
{
test: /\.scss$/,
loaders: ["style-loader", "css-loader", "sass-loader"],
options: { url: false }
},
此代码有效:
{
test: /\.scss$/,
loader: 'style!css?url=false!sass'
}
答案 1 :(得分:0)
这个问题可能有点老了,但是我仍然想纠正答案。
当您要使用数组语法时,基本上可以为每个加载程序定义所有选项。为此,您必须在数组中的加载器中使用一个对象。所以代替
{
test: /\.scss$/,
loaders: ["style-loader", "css-loader", "sass-loader"],
options: { url: false }
},
你必须写
{
test: /\.scss$/,
loaders: [
"style-loader",
{
loader:'css-loader',
options: {
url: false
}
},
"sass-loader"],
},