使用Gulp构建Semantic-UI时报错:TypeError: print is not a function
解决Gulp构建Semantic-UI时
TypeError: print is not a function的思路 我之前在配置Semantic-UI的Gulp构建时也碰到过一模一样的报错,给你几个实用的排查和解决方向:
检查gulp-print的版本兼容性
这个报错十有八九是版本API变化导致的:gulp-print从v2版本开始改用ES模块导出,默认导出不再是直接的print函数。如果你的代码里还是用旧写法const print = require('gulp-print');,拿到的其实是个包含default属性的对象,直接调用print()当然会报“不是函数”的错。
改起来很简单:把导入语句改成const print = require('gulp-print').default;,要是你的项目支持ES模块,也可以用import print from 'gulp-print';。尝试降级gulp-print版本
如果你不想修改现有代码,也可以直接把gulp-print降级到v1.x版本(这个版本的API是直接导出print函数的,和旧写法兼容),执行下面的命令:npm install gulp-print@1.2.0 --save-dev安装完成后重新运行Gulp构建任务,应该就能正常工作了。
确认print函数的调用方式
检查javascript.js第8行调用print的代码,确保是标准的用法:// 基础用法 .pipe(print()) // 或者自定义输出内容 .pipe(print(filepath => `正在处理文件: ${filepath}`))有没有误写成
print不带括号,或者传递了错误的参数类型?验证Semantic-UI的Gulp配置文件
有时候Semantic-UI自带的Gulp任务可能和新版依赖不兼容,可以打开项目里的semantic/gulpfile.js或者相关配置文件,确认里面的gulp-print导入和调用是否符合当前安装版本的要求,必要时手动调整配置。
内容的提问来源于stack exchange,提问作者guylabbe.ca




