gpt4 book ai didi

Laravel Mix 和 SASS 更改字体目录

转载 作者:行者123 更新时间:2023-12-05 03:09:44 31 4
gpt4 key购买 nike

我正在使用 Laravel 5.4 和 Laravel Mix 输出 SASS 文件。

在我的字体定义中,我正在配置它们,以便在输出 CSS 时它将指向诸如 public/assets/fnt/font-name/filename.ext 之类的文件,但处理器发生了变化输出,这样它将指向 public/fonts/filename.ext。有没有办法阻止它更改输出路径?

默认情况下它会做这样的事情对我来说意义不大。

编辑

我已经看到他们在 Mix 中使用的默认值是罪魁祸首:

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 以防止它复制文件,但路径仍在更改。

最佳答案

我最终进行了以下配置,至少可以使其进入工作状态。

let assetDir = 'assets/build';

mix.config.fileLoaderDirs.fonts = `${assetDir}/${mix.config.fileLoaderDirs.fonts}`;
mix.config.fileLoaderDirs.images = `${assetDir}/${mix.config.fileLoaderDirs.images}`;

mix.sass('resources/sass/app.scss', `public/${assetDir}/css`)
.js('resources/js/app.js', `public/${assetDir}/js`);

更新:

在较新的版本中,这已经通过 mix.options() 进行了自定义,并且可以进行如下调整:

let assetDir = 'assets/build';

mix.options({
fileLoaderDirs: {
images: `${assetDir}/img`,
fonts: `${assetDir}/fonts`
}
});

// adjust build commands accordingly, for example:
mix.js('resources/js/app.js', `public/${assetDir}/js`);

关于Laravel Mix 和 SASS 更改字体目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41924425/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com