我正在使用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
是的,這是正確的。 –