Gulp -类型错误:不是一个函数,如何查找问题的关键字?

lzfw57am  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(219)

Gulp文件代码:

let preprocessor = 'sass';

const {app, dest, parallel, watch} = require('gulp'),
      browserSync = require('browser-sync').create(),
      concat = require('gulp-concat'),
      uglify = require('gulp-uglify-es').default(),
      sass = require('gulp-sass'),
      autoprefixer = require('gulp-autoprefixer'),
      cleancss = require('gulp-clean-css'),
      imagemin = require('gulp-imagemin'),
      newer = require('gulp-newer'),
      del = require('del');

function browsersync() {
    browserSync.init({
        server: {'baseDir': 'src/'},
        notify: false,
        online: true
    });
}

function scripts() {
  return app([ 
    'src/js/script.js'
    ])
  .pipe(concat('script.min.js')) 
  .pipe(uglify()) 
  .pipe(dest('src/js/')) 
  .pipe(browserSync.stream());
}

function startwatch() {
  watch(['src/**/*.js', '!src/**/*.min.js'], scripts);
    watch('src/**/' + preprocessor + '/**/*', styles);
    watch('src/**/*.html').on('change', browserSync.reload);
    watch('src/images/**/*', images);
}

function styles() {
  return app('src/' + preprocessor + '/style.' + preprocessor + '')
  .pipe(eval(preprocessor)()) 
  .pipe(concat('style.min.css'))
  .pipe(autoprefixer({ overrideBrowserslist: ['last 10 versions'], grid: true })) 
  .pipe(cleancss( { level: { 1: { specialComments: 0 } }} ))
  .pipe(dest('src/css/'))
  .pipe(browserSync.stream());
}

function images() {
  return app('src/images/**/*') 
  .pipe(newer('src/images')) 
  .pipe(imagemin()) 
  .pipe(dest('src/images'));
}

function cleanimg() {
  return del('src/images/**/*', { force: true });
}

exports.browsersync = browsersync;
exports.scripts = scripts;
exports.styles = styles;
exports.images = images;
exports.cleanimg = cleanimg;
exports.default = parallel(styles, scripts, browsersync, startwatch);

结果:

[21:41:22] 'styles' errored after 38 ms
[21:41:22] TypeError: app is not a function
    at styles (C:\Users\vladi\Desktop\projects\Web\nextPr\gulpfile.js:42:9)
    at bound (domain.js:413:15)
    at runBound (domain.js:424:12)
    at asyncRunner (C:\Users\vladi\Desktop\projects\Web\nextPr\node_modules\async-done\index.js:55:18)
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
[21:41:22] 'default' errored after 70 ms

解释为什么有一个问题,我不明白。我已经爬遍了谷歌,并没有找到一个解决这个问题的方法。我将非常感激,如果你能帮助。我从互联网上部分采取了这个代码,但是没有找到这个问题的解决方案。我是Web开发的新手,对我来说仍然很难导航。我可以'I don“我找不到一个人能告诉我或指引我正确的方向。

wpx232ag

wpx232ag1#

更改此行:
const {app, dest, parallel, watch} = require('gulp'),

const {src, dest, parallel, watch} = require('gulp'),
我不知道app从哪里来,但没有从gulp导出app
然后将所有引用更改为app,例如:
return app('src/' + preprocessor + '/style.' + preprocessor + '')

return src('src/' + preprocessor + '/style.' + preprocessor + '')

k97glaaz

k97glaaz2#

下一次,错误会告诉你问题到底出在哪一行,你最终会学会理解某些类型的错误--例如,“something is not a function”意味着你把某个东西当作函数来使用,但它不是函数(也许它是不同的类型,也许它甚至没有被定义--比如在这个例子中)。
这会导致你看“app()"。为什么它不是一个函数?
如果你使用外部库-它通常有一个文档,你可以通过。
在这种情况下,你会发现里面没有关于“应用程序”的内容,你也会找到比你从谁知道哪里抄来的更好的例子。

相关问题