【发布时间】:2021-01-17 08:30:58
【问题描述】:
当我尝试通过 Sublime Text 观看 GULP 中的任务列表时,我收到此消息。此代码必须缩小 css 和 js 文件。平时我们都是拿这种js gulp文件来缩小这个文件,但是代码在其他电脑上已经不行了。
错误在 sublime-gulp.log 中说:
fs.js:153
throw new ERR_INVALID_CALLBACK(cb);
^
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined
at makeCallback (fs.js:153:11)
at Object.unlink (fs.js:1125:14)
at requireGulp (C:\Users\sopor\AppData\Roaming\Sublime Text 3\Packages\Gulp\write_tasks_to_cache.js:30:12)
at Object.<anonymous> (C:\Users\sopor\AppData\Roaming\Sublime Text 3\Packages\Gulp\write_tasks_to_cache.js:83:12)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'ERR_INVALID_CALLBACK'
}
这是我的代码:
require('events').EventEmitter.defaultMaxListeners = 20;
var gulp = require('gulp');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var minify = require('gulp-minify-css');
var penthouse = require('penthouse');
var fs = require('fs');
gulp.task("load1", function() {
return gulp.src(["images/assets/js/load1.js"]).pipe(concat("load1.min.js")).pipe(uglify()).pipe(gulp.dest("images/assets/js/min/"))
}),
gulp.task("scripts1", function() {
return gulp.src(["images/assets/vendor/jquery/jquery.min.js", "images/assets/vendor/jquery-ui/jquery-ui.min.js", "images/assets/vendor/bootstrap/dist/js/bootstrap.min.js", "images/assets/js/jquery.validationEngine.js", "images/assets/js/jquery.validationEngine-es.js", "images/assets/js/inicio.js"]).pipe(concat("scripts1.min.js")).pipe(uglify()).pipe(gulp.dest("images/assets/js/min/"))
}),
gulp.task("scripts2", function() {
return gulp.src(["images/assets/vendor/jquery/jquery.min.js", "images/assets/vendor/jquery-ui/jquery-ui.min.js", "images/assets/vendor/bootstrap/dist/js/bootstrap.min.js", "images/assets/js/jquery.validationEngine.js", "images/assets/js/jquery.validationEngine-es.js", "images/assets/js/tpvadyen.js"]).pipe(concat("scripts2.min.js")).pipe(uglify()).pipe(gulp.dest("images/assets/js/min/"))
}),
gulp.task("scripts3", function() {
return gulp.src(["images/assets/vendor/jquery/jquery.min.js", "images/assets/vendor/jquery-ui/jquery-ui.min.js", "images/assets/vendor/bootstrap/dist/js/bootstrap.min.js", "images/assets/js/jquery.validationEngine.js", "images/assets/js/jquery.validationEngine-es.js"]).pipe(concat("scripts3.min.js")).pipe(uglify()).pipe(gulp.dest("images/assets/js/min/"))
}),
gulp.task("scripts5", function() {
return gulp.src(["images/assets/vendor/jquery/jquery.min.js", "images/assets/vendor/jquery-ui/jquery-ui.min.js", "images/assets/vendor/bootstrap/dist/js/bootstrap.min.js", "images/assets/js/jquery.validationEngine.js", "images/assets/js/jquery.validationEngine-es.js", "images/assets/js/lib.tpv2.js"]).pipe(concat("scripts5.min.js")).pipe(uglify()).pipe(gulp.dest("images/assets/js/min/"))
}),
gulp.task("css", function() {
return gulp.src(["images/assets/vendor/bootstrap/dist/css/bootstrap.min.css", "images/assets/vendor/owl-carousel/owl-carousel/owl.carousel.css", "images/assets/vendor/slick-carousel/slick/slick.css", "images/assets/vendor/animate.css/animate.min.css", "images/assets/css/main.css", "images/assets/css/jquery.rating.css"]).pipe(concat("styles.min.css")).pipe(minify({
keepSpecialComments: 0
})).pipe(gulp.dest("images/assets/css/min/"))
}),
gulp.task("cssfp", function() {
return gulp.src(["images/assets/css/fp.css"]).pipe(concat("fp.min.css")).pipe(minify()).pipe(gulp.dest("images/assets/css/min/"))
}),
gulp.task("criticalCSSfp", function() {
penthouse({
url: "https://www.pymescomercial.com/formas-de-pago",
css: "images/assets/css/min/styles.min.css",
width: 1280,
height: 1280,
userAgent: "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
timeout: 1e5
}, function(s, e) {
s && console.log(s), require("fs").writeFile("application/views/inline/in_formas-de-pago.css", e)
})
}),
gulp.task("criticalCSSall", function() {
criticalPages.map(function(i) {
penthouse({
url: i.url,
css: "images/assets/css/min/styles.min.css",
width: 1300,
height: 900,
keepLargerMediaQueries: !1,
userAgent: "Penthouse Critical Path CSS Generator",
timeout: 6e5,
propertiesToRemove: ["(.*)transition(.*)", "cursor", "pointer-events", "(-webkit-)?tap-highlight-color", "(.*)user-select"],
puppeteer: {
getBrowser: void 0
}
}, function(s, e) {
s && console.log(s), fs.writeFileSync("application/views/inline/" + i.name + ".css", e)
})
})
});
【问题讨论】:
-
请edit 您的帖子并创建一个minimal reproducible example 来演示问题。倾倒一堵未格式化的代码并不能说服任何人帮助你。寻求调试帮助的问题(“为什么这段代码不起作用?”)应包括所需的行为、特定问题或错误和必要的最短代码 将其复制为 格式化文本 在问题本身。没有明确的问题陈述的问题对其他读者没有用处。
-
如果 Sublime 执行它与在控制台中运行它,
gulp会做不同的事情吗?您是否在为 Sublime 使用某种gulp插件,但不知何故没有做正确的事情?您的书面问题听起来与gulp有关,与Sublime 无关。您用于创建文件的编辑器与其他工具对您完成后创建的文件的处理方式无关。 -
错误消息中的@OdatNurd,看起来他们正在使用this plugin。
-
@MattDMoAhh 好的;我认为验证手动运行
gulp是否有效或生成相同的错误以稍微缩小焦点仍然是一个好主意。我只深入研究了代码,但看起来它主要只是为您执行gulp并在日志中捕获错误。
标签: javascript gulp sublimetext3 sublime-text-plugin