【问题标题】:Migrating to Gulp 4, [not creating scripts and Running the server. No Error Shown]迁移到 Gulp 4,[不创建脚本并运行服务器。没有错误显示]
【发布时间】:2020-01-15 18:26:55
【问题描述】:

我从 gulp 3.9.1 迁移到 4.0.2,解决了需要引入 gulp.series 和 gulp.parallel 的问题。

在我生成的 app 文件夹中,除了 css 文件之外,我没有看到我的脚本正在生成。

gulpfile.js

var gulp        = require('gulp');
var templates   = require('./tools/gulp-templates.js');
var scripts     = require('./tools/gulp-scripts.js');
var styles      = require('./tools/gulp-styles.js');
var fonts       = require('./tools/gulp-fonts.js');
var build       = require('./tools/gulp-build.js');
var run         = require('./tools/gulp-run.js');

gulp.task('default', );

gulp.task('templates', templates);

gulp.task('scripts',gulp.parallel('templates'), scripts);

gulp.task('styles', styles);

gulp.task('fonts', fonts);

gulp.task('build', gulp.parallel('styles', 'scripts','fonts'), build);

gulp.task('run', gulp.parallel('build'), run);

gulp-scripts.js

let headerComment = require('gulp-header-comment');
let git = require('git-rev');
let strip = require('gulp-strip-comments');

let b = browserify({
    detectGlobals: false,
    entries: './src/app.js',
    debug: true
}).transform("babelify", {
    presets: [['es2015', {loose: true}], 'stage-0'],
    plugins: ['transform-proto-to-assign']
});

module.exports = function() {

        git.long(function (str) {

            return b.bundle()
                .pipe(source('app.js'))
                .pipe(buffer())
                .pipe(strip())
                .pipe(streamify(uglify({compress: true, beautify: false})))
                .pipe(headerComment(`Generated on <%= moment().format() %>
                    Commit: ${str}  
                `))
                .pipe(gulp.dest('./app/'))
        })
};

迁移前的应用文件夹

迁移后的应用文件夹

出现错误的控制台输出

【问题讨论】:

    标签: javascript gulp gulp-4


    【解决方案1】:

    我要改变的第一件事是你的一些任务,比如

    gulp.task('scripts',gulp.parallel('templates'), scripts);

    gulp.task('build', gulp.parallel('styles', 'scripts','fonts'), build);

    gulp.task('run', gulp.parallel('build'), run);

    这是来自文档 (https://gulpjs.com/docs/en/api/task#signature) 的 task 签名

    任务([任务名称],taskFunction)

    你有gulp.task('run', gulp.parallel('build'), run);,最后一个run必须是参数taskFunction的一部分,所以你可能想要:

    gulp.task('run', gulp.series('build', run));

    gulp.task('build', gulp.series( gulp.parallel('styles', 'scripts','fonts'), build));

    gulp.task('scripts',gulp.series('templates', scripts));

    您可能还有其他问题,但请从上述更改开始。

    【讨论】:

    • Hi Mark build 很好并生成所有文件,但我在构建期间看到正在启动 ''...,知道这是什么吗?
    • 我认为那是当 gulp 不知道函数的名称时,就像你正在使用 gulp.series(someTask, function() {...} ) 第二个是匿名函数.
    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多