gpt4 book ai didi

laravel - 如何在 Laravel MIX 上创建 svg Sprite ?

转载 作者:行者123 更新时间:2023-12-02 10:38:15 25 4
gpt4 key购买 nike

我需要在 laravel mix 上配置构建 SVG Sprite 。
我在 webpack 下尝试了几个库,result = 0

有人可以建议如何配置吗?

webpack.mix.jsapp.js 中哪里编写处理程序代码?

最佳答案

我能够让 SVG sprites 与 Laravele Mix 和 svg-spritemap-webpack-plugin 一起使用的一种方法。

首先安装spritemap插件

npm install svg-spritemap-webpack-plugin --save-dev

然后添加配置webpack.mix.js,如下所示:

const mix = require('laravel-mix');
const SVGSpritemapPlugin = require('svg-spritemap-webpack-plugin');

// Set up the spritemap plugin
mix.webpackConfig({
plugins: [
new SVGSpritemapPlugin({
src:'assets/svg/icons/*.svg',
filename: '/svg/icons.svg',
prefix: '',
svg4everybody: true,
svgo: {
removeTitle: true,
removeStyleElement: true,
cleanupNumericValue: true,
},
})
]
});

// Adapt laravel-mix webpack config to better handle svg images.
Mix.listen('configReady', (webpackConfig) => {

// Add separate svg loader
webpackConfig.module.rules.push({
test: /\.(svg)$/,
include: /assets\/svg/,
loaders: [
{
loader: 'file-loader',
options: {
name: 'svg/[name].[ext]?[hash]',
publicPath: Config.resourceRoot
}
},

{
loader: 'img-loader',
options: Config.imgLoaderOptions
}
]
});

// Exclude local 'svg' folder from font loader
let fontLoaderConfig = webpackConfig.module.rules.find(rule => String(rule.test) === String(/\.(woff2?|ttf|eot|svg|otf)$/))
fontLoaderConfig.exclude = /(assets\/svg)/;

});

有了这个,您应该能够将 *.svg 文件添加到复制到公共(public)的 /resources/assets/svg/*.svg 中,并获取由 /resources 制作的 svg Sprite /assets/svg/icons/*.svg

关于laravel - 如何在 Laravel MIX 上创建 svg Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46239220/

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