Gulp不创建文件

Gulp not creating file

本文关键字:文件 创建 Gulp      更新时间:2023-09-26

我的gulp文件的部分没有做任何事情,我没有得到任何错误,但所需的文件没有显示(或被修改)。

完整的gulpFile如下;而gulp任务'vendor'做它应该做的-(在'build' dir中创建文件)…gulp任务'js'和'build'不要在'build'目录中创建预期的'app.js'。

由于'js'和'build'使用'事件流'和函数getTemplateStream(),我怀疑问题是存在的

确认;如果我删除这些元素,这是有效的:

gulp.task( 'x', function() {
    gulp.src( source.js.src )
        .pipe( concat( 'app.js' ) )
        .pipe( gulp.dest( 'build' ) )
}); 

我似乎不能console.log()或得到一个错误-所以我在损失任何帮助-非常感谢

/*
    GULP BUILD SYSTEM
    -Will watch and compress files, as needed, restart server on change in dev mode
    -Will create a single "vendor.js" uglified file for any JS files specified in the "app.scripts.json" file
    -will move condensed files to "build"
*/
var es = require( 'event-stream' );
var gulp = require( 'gulp' );
var concat = require( 'gulp-concat' );
var connect = require( 'gulp-connect' );
var templateCache = require( 'gulp-angular-templatecache' );
var ngAnnotate = require( 'gulp-ng-annotate' );
var uglify = require( 'gulp-uglify' );
var gutil = require( 'gulp-util' );
var fs = require( 'fs' );
var _ = require( 'lodash' );
var scripts = require( './app.scripts.json' ); // for vendor.js
var source = {
    js: {
        main: 'app/main.js',
        src: [  'app.config.js',
                'app/main.js',
                'app/app.js',
                'app/**/module.js',
                'app/**/!(module)*.js' ],
        tpl: 'app/**/*.tpl.html'
    }
};
var destinations = {
    js: 'build'
};

// FUNCTIONS
var swallowError = function( error ) {
    console.error.bind( error.toString() );
    this.emit( 'end' );
};
var getTemplateStream = function () {
    return
    gulp.src( source.js.tpl )
        .pipe( templateCache( {
            root: 'app/',
            module: 'app'
        } ) )
};

// GULP TASKS
gulp.task( 'build', function() {
    return
    es.merge( gulp.src( source.js.src ) , getTemplateStream() )
        .pipe( ngAnnotate() )
        .pipe( uglify() )
        .pipe( concat( 'app.js' ) )
        .on( 'error', swallowError )
        .pipe( gulp.dest( destinations.js ) );
});

gulp.task( 'js', function() {
    return
    es.merge( gulp.src( source.js.src ) , getTemplateStream() )
        .pipe( concat( 'app.js' ) )
        .on( 'error', swallowError )
        .pipe( gulp.dest( destinations.js ) );
});

gulp.task( 'vendor', function() {
    _.forIn( scripts.chunks, function( chunkScripts, chunkName ) {
        var paths = [];
        chunkScripts.forEach( function( script ) {
            var scriptFileName = scripts.paths[script];
            if ( !fs.existsSync( __dirname + '/' + scriptFileName ) ) {
                throw console.error( 'Required path doesn''t exist: ' + __dirname + '/' + scriptFileName, script );
            }
            paths.push( scriptFileName );
            //console.log( 'vendor file ' + scriptFileName + ' added to vendor.js.' );
        });
        gulp.src( paths )
            .pipe( concat( chunkName + '.js' ) )
            .on( 'error', swallowError )
            .pipe( gulp.dest( destinations.js ) )
    });
});

gulp.task( 'watch', function() {
    gulp.watch( source.js.src, ['js'] );
    gulp.watch( source.js.tpl, ['js'] );
});

gulp.task( 'connect', function() {
    connect.server({
        port: 8888
    });
});
gulp.task( 'prod', ['vendor', 'build'] );
gulp.task( 'dev', ['vendor', 'js', 'watch', 'connect'] );
gulp.task( 'default', ['dev'] );
// END GULP TASKS

Sven(以一种非常被动的攻击方式)指出了答案。

问题是javascript自动插入分号…Return语句的经典示例:(在参考页面的大约1/2处找到)

return 
  "something";
// is transformed to
return;
  "something";

所以做出这些调整-解决了我的问题。

斯文,我不同意这是一个重复的问题,虽然答案是一样的。我不可能知道要"寻找"原始帖子。你可以直接把我引到邮局作为答案。

请记住,那些发帖寻找答案的人并不总是有深度或广度,这就是我们问的原因。