gulp 3.9.1搭配Node.js 10.13.3使用gulp-iconfont构建失败,遗漏了什么配置?
问题排查与修复方案
核心问题原因
- 代码缺失gulp依赖引入:你提供的任务代码直接使用
gulp变量,但开头没有引入gulp依赖,运行时会直接报gulp is not defined错误 - 依赖版本不兼容:高版本的
gulp-iconfont仅支持Gulp 4+,你使用的Gulp 3.9.1无法适配,会触发调用方法不匹配的报错 - 可能存在路径错误:如果
src/icons/目录不存在,或者目录下没有合法的SVG文件,也会导致任务执行失败
修复步骤
- 先卸载当前安装的高版本gulp-iconfont
npm uninstall gulp-iconfont
- 安装适配Gulp 3.9.1的指定版本
npm install gulp-iconfont@9.2.0 --save-dev
- 替换为修正后的任务代码,补全gulp引入
"use strict"; var gulp = require('gulp'); // 补全缺失的gulp引入 var iconfont = require('gulp-iconfont'); var runTimestamp = Math.round(Date.now()/1000); gulp.task('Iconfont', function(){ return gulp.src(['src/icons/*.svg']) .pipe(iconfont({ fontName: 'myfont', prependUnicode: true, formats: ['ttf', 'eot', 'woff'], timestamp: runTimestamp, })) .on('glyphs', function(glyphs, options) { console.log(glyphs, options); }) .pipe(gulp.dest('src/fonts/')); });
- 检查项目根目录下是否存在
src/icons目录,确认目录内存放了合法的SVG图标文件 - 重新执行任务即可
gulp Iconfont
- 可选排查:如果执行后仍报错,逐一检查SVG源文件,确保为纯矢量路径格式,剔除包含嵌入位图、渐变、蒙版等特殊效果的文件即可
内容的提问来源于stack exchange,提问作者Marko Petrovic
相关产品推荐
相关产品推荐

