我在以下问题上苦苦挣扎,不胜感激......!
我尝试使用 Laravel Mix (v5.0.4) 并使用 SVG sprite loader ( svg-sprite-loader ) 对其进行扩展以生成 SVG sprite。我有以下文件夹结构:
resources/
images/
image.jpg
sass/
app.scss
svg/
file1.svg
file2.svg
webpack.sprite.js
webpack.mix.js
的内容webpack.mix.js
:
const mix = require('laravel-mix');
require('./webpack.sprite');
const toCss = 'public/css';
mix.sass('resources/sass/app.scss', toCss)
.options({
sassOptions: {
outputStyle: 'nested',
}
})
.sprite();
的内容webpack.sprite.js
:
const mix = require('laravel-mix');
const SpriteLoaderPlugin = require('svg-sprite-loader/plugin');
const path = require('path');
class Sprite {
dependencies() {
return ['svg-sprite-loader'];
}
webpackPlugins() {
return new SpriteLoaderPlugin({plainSprite: true});
}
webpackRules() {
return {
test: /\.svg$/,
include: path.resolve(__dirname, 'resources', 'svg'),
use: [
{
loader: 'svg-sprite-loader',
options: {
extract: true,
spriteFilename: path.resolve(__dirname, 'resources', 'images') + 'sprite.svg',
runtimeCompat: true
}
},
'svg-transform-loader',
'svgo-loader'
]
};
}
}
mix.extend('sprite', new Sprite());
它对精灵没有任何作用,但它从 SASS 生成 CSS!:(我不知道为什么...尝试在扩展程序中使用一些console.log()“调试”它并被击中,我在控制台中看到了日志消息。但是没有生成精灵。
我还尝试在扩展中使用硬编码的相对路径,而不使用path
. 没有帮助。
任何想法?
提前致谢!