2017-07-07 20 views
0

私は最後の2日間でこのテーマで見つけられるインターネット上のすべての回答を読んだ。今では、壊れたjsファイルを1つの大きなjsファイルにマージし、1つのjsファイルに閉じられていない関数によって引き起こされる端末にエラーを投げないようにするgulpプラグインを探しています。gulp plugin - 壊れたjsファイルを1つのjsファイルにマージしますか?

説明:

モジュールを使用してjsアプリケーションを作成しました。 私はこれが大きなアプリになることは知らなかったので、1つのファイルにjsコードを書きました。

アプリ-start.js(生命維持機能のオープン名前付き)

module1.js

モジュール2:

は今、私はこのようなapp.jsファイルを分割するという考えになってきました。 JS

など

アプリ-end.js(名前付き生命維持function closed)

私はgulpをタスクランナーとgulp-concatとして使用しています。これは完全に機能します。

問題点は、IIFE関数を2つのファイル(app-start.js、app-end.js)でブレークしようとすると、gulpはbundle.jsファイルを作成したくないということです。 私はあなたが多分与えられた順序で複数のjsファイルをマージしますゴクゴクプラグインについて知っています
、私の質問があり、私はそう
アプリ-start.js

で私のjsのコードを修復する必要があり、端末のエラーを取得し、それらのファイルのjsコードエラーを気にする必要はありませんか?

これは私のgulp.jsコードです:

babel解析し、整形式の入力を必要としますので、JavaScriptを変換します。

var gulp = require('gulp'), 
    sass = require('gulp-sass'), 
    uglify = require('gulp-uglify'), 
    plumber = require('gulp-plumber'), 
    concat = require('gulp-concat'), 
    imagemin = require('gulp-imagemin'), 
    pngquant = require('imagemin-pngquant'), 
    autoprefixer = require('gulp-autoprefixer'), 
    browserSync = require('browser-sync').create(), 
    sourceMap = require('gulp-sourcemaps'), 
    babel = require('gulp-babel'); 



    gulp.task('sass', function() { 
    gulp.src('resources/sass/config-normalize.sass') 
    //.pipe(sourceMap.init()) 
    .pipe(sass.sync().on('error', sass.logError)) 
    .pipe(autoprefixer({browsers: ['last 30 versions']})) 
    .pipe(sass({outputStyle: 'expanded'})) //expanded - compressed 
    //.pipe(sourceMap.write('.')) 
    .pipe(gulp.dest('configurator/css')); 

    gulp.src('resources/sass/config-style.sass') 
    //.pipe(sourceMap.init()) 
    .pipe(sass.sync().on('error', sass.logError)) 
    .pipe(autoprefixer({browsers: ['last 30 versions']})) 
    .pipe(sass({outputStyle: 'expanded'})) //expanded - compressed 
    //.pipe(sourceMap.write('.')) 
    .pipe(gulp.dest('configurator/css')) 
    .pipe(browserSync.stream()); 
}); 


gulp.task('scripts', function() { 
    gulp.src([ 
     //'resources/js/vendor/jquery.js', 
     //'resources/js/vendor/library/neki_file.js', 
     'resources/js/001-app-start.js',   
     'resources/js/002-ajax.js', 
     'resources/js/003-global-variables.js', 

     'resources/js/050-main.js', 

     'resources/js/100-my-modules.js', 
     'resources/js/app-end.js' 
     ]) 
    //.pipe(plumber()) 
    .pipe(babel({ 
      presets: ['es2015'] 
     })) 
    .pipe(concat('all.js')) 
    //.pipe(uglify()) 
    .pipe(gulp.dest('configurator/js')) 
    .pipe(browserSync.stream()); 
}); 



gulp.task('php', function() { 
    gulp.src('./**/*.php') 
    .pipe(browserSync.stream()); 
}); 




gulp.task('browser-sync', function() { 
    browserSync.init({ 
     proxy: "localhost"  //Upisi path do projekta na local hostu bez http:// 
    }); 
}); 




gulp.task('images', function() { 
    return gulp.src('assets/images-uncompressed/**/*') 
     .pipe(imagemin({ 
      progressive: true, 
      svgoPlugins: [{removeViewBox: false}], 
      use: [pngquant()] 
     })) 
     .pipe(gulp.dest('build/images')); 
}); 



gulp.task('watch', function() { 
    gulp.watch('./**/*.php', ['php']); 
    gulp.watch('resources/sass/**', ['sass']); 
    gulp.watch('resources/js/**', ['scripts']); 
    //gulp.watch('resources/images-uncompressed/*', ['images']); 
}); 

gulp.task('default', ['sass', 'scripts', 'php', 'browser-sync', 'watch']); 
+0

各ファイルが構文上有効なJavaScriptになるように、あなたのコードを_really_リファクタリングする必要があります。基本的にこの方法ではツールは動作しません。 – joews

+0

私はそれを認識しており、これを試した直後の最後の選択肢です。また、私はこのjsコードを最終的にテストする他の方法があります。したがって、ビルドプロセスでjsをテストすることは、このプロジェクトではあまり重要ではありません。 –

+0

しかし、JavaScriptを意識したタスクが動作する前に 'gulp-concat'を実行する必要があります。 Gulpスクリプトを投稿できますか? – joews

答えて

1

問題は、あなたのがぶ飲みのタスクを実行するためにあります。

concat JavaScriptを理解する必要はありません。それはテキストファイルを結合するだけです。壊れたファイルをうまく処理します。

babelの前に移動すると、Babelは分割ファイルから構築された単一の整形されたJavaScriptブロックで作業できます。

+1

ありがとうございました! –

関連する問題