我正在使用Laravel 5.4和Laravel Mix来输出SASS文件。Laravel Mix和SASS更改字体目录
在我的字体定义中,我对它们进行了配置,以便在输出CSS时它将指向诸如public/assets/fnt/font-name/filename.ext
之类的文件,但处理器将更改输出,以便它将指向public/fonts/filename.ext
。有没有办法阻止它改变输出路径?
对我来说,默认情况下会做这样的事情没有意义。
编辑
我已经看到了他们正在使用混合的默认值是罪魁祸首:
module.exports.module = {
rules: [
// ...
{
test: /\.(woff2?|ttf|eot|svg|otf)$/,
loader: 'file-loader',
options: {
name: 'fonts/[name].[ext]?[hash]',
publicPath: '/'
}
}
]
};
我一直在使用null-loader
代替file-loader
尝试,但相反,它它会导致失败是因为它找不到node_modules
中的文件,而这不是它应该首先查找的位置。
删除有问题的结果规则中的错误的洪水从试图打开并评估有问题的字体文件:
error in ./public/assets/fnt/fanfare-jf/fanfare-jf.ttf
Module parse failed: DIRECTORY\public\assets\fnt\fanfare-jf\fanfare-jf.ttf Unexpected character '' (1:0)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)
@ ./~/css-loader!./~/postcss-loader!./~/resolve-url-loader!./~/sass-loader?sourceMap&precision=8!./resources/assets/sass/app.scss 6:2525-2590
@ ./resources/assets/sass/app.scss
@ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
我至少可以增加emitFiles: false
到options
,以防止它制作的副本文件,但路径仍在被修改。
您是否想将此问题标记为Webpack-2?处理加载器和选项的配置结构将会有很大不同。 – rxgx
是的,这是正确的。 –