2016-10-10 8 views
3

私は通常詰め込む最大コールスタックサイズを超過しています

そして、それはDrupalの8のためにここにある

です... CSSなどにSCSSと..同じ私は彼らCONCAT、それらを縮小化、いくつかのjsファイルを取るゴクゴクタスクを足すいます私のgulpfile。しかし、これを実行するには、私は次のエラーを取得し続ける:

[10:00:58] Starting 'scripts'... 

events.js:160 
     throw er; // Unhandled 'error' event 
    ^
RangeError: Maximum call stack size exceeded 
    at Object.TreeWalker._visit (eval at <anonymous> (/Applications/MAMP/htdocs/novaent/node_modules/uglify-js/tools/node.js:1:0), <anonymous>:1255:21) 
'use strict'; 

そして、以下の私の一気ファイルが

// Include gulp. 
var gulp = require('gulp'); 
var browserSync = require('browser-sync').create(); 
var config = require('./config.json'); 

// Include plugins. 
var sass = require('gulp-sass'); 
var imagemin = require('gulp-imagemin'); 
var pngcrush = require('imagemin-pngcrush'); 
var shell = require('gulp-shell'); 
var plumber = require('gulp-plumber'); 
var notify = require('gulp-notify'); 
var autoprefix = require('gulp-autoprefixer'); 
var glob = require('gulp-sass-glob'); 
var uglify = require('gulp-uglify'); 
var concat = require('gulp-concat'); 
var rename = require('gulp-rename'); 
var sourcemaps = require('gulp-sourcemaps'); 


// sassOptions are optional but things like sourceComments (line_comments) can be pretty handy. 
var sassOptions = { 
    errLogToConsole: true, 
    outputStyle: 'compressed', 
    sourceComments: 'line_comments', 
    includePaths: config.css.includePaths 
}; 


// CSS. 
gulp.task('css', function() { 
    return gulp.src(config.css.src) 
    .pipe(glob()) 
    .pipe(plumber({ 
     errorHandler: function (error) { 
     notify.onError({ 
      title: 'Gulp', 
      subtitle: 'Failure!', 
      message: 'Error: <%= error.message %>', 
      sound: 'Beep' 
     })(error); 
     this.emit('end'); 
     }})) 
    .pipe(sourcemaps.init()) 
    .pipe(sass(sassOptions).on('error', sass.logError)) 
    .pipe(autoprefix('last 2 versions', '> 1%', 'ie 9', 'ie 10')) 
    .pipe(sourcemaps.write('./maps')) 
    .pipe(gulp.dest(config.css.dest)) 
    .pipe(browserSync.reload({stream: true, injectChanges: true, match: '**/*.css'})); 
}); 

// Compress images. 
gulp.task('images', function() { 
    return gulp.src(config.images.src) 
    .pipe(imagemin({ 
     progressive: true, 
     svgoPlugins: [{removeViewBox: false}], 
     use: [pngcrush()] 
    })) 
    .pipe(gulp.dest(config.images.dest)); 
}); 

// Fonts. 
gulp.task('fonts', function() { 
    return gulp.src(config.fonts.src) 
    .pipe(gulp.dest(config.fonts.dest)); 
}); 

// javaScripts 
gulp.task('scripts', function() { 
    return gulp.src(config.js.src) 
    .pipe(concat('index.js')) 
    .pipe(gulp.dest(config.js.dest)) // outputs *.js without min 
    .pipe(rename({suffix: '.min'})) 
    .pipe(uglify()) 
    .pipe(gulp.dest(config.js.dest)) // outputs *.js.min 
    .pipe(notify({message: 'Rebuild all custom scripts'})); 
}); 

// Watch task. 
gulp.task('watch', function() { 
    gulp.watch(config.css.src, ['css']); 
    gulp.watch(config.fonts.src, ['fonts']); 
    gulp.watch(config.js.src, ['scripts']); 
    gulp.watch(config.images.src, ['images']); 
}); 

// Static Server + Watch 
gulp.task('serve', ['css', 'fonts', 'watch'], function() { 
    browserSync.init({ 
    proxy: config.proxy 
    }); 
}); 

// Run drush to clear the theme registry. 
gulp.task('drush', shell.task([ 
    'drush cache-clear theme-registry' 
])); 

// Default Task 
gulp.task('default', ['serve']); 
+0

次のように私はそれを解決したと思いますそれを無限に再帰呼び出しにしました。なぜ、まだ、知りません。 – vlaz

+0

ええ、RangeError:jsの再帰呼び出しを示す可能性がある最大呼び出しスタックサイズを超えました..しかし、それは正しくないはずですか? –

+0

そうだと思いますが、「uglify」がそこに行きます。理由は分かりません。あなたは電話に何かを渡すことになっていますか?それは決してギャルプではできないので、わかりません。 – vlaz

答えて

0

である私は、あなたがきた

'use strict'; 

// Include gulp. 
var gulp = require('gulp'); 
var browserSync = require('browser-sync').create(); 
var config = require('./config.json'); 

// Include plugins. 
var sass = require('gulp-sass'); 
var imagemin = require('gulp-imagemin'); 
var pngcrush = require('imagemin-pngcrush'); 
var shell = require('gulp-shell'); 
var plumber = require('gulp-plumber'); 
var notify = require('gulp-notify'); 
var autoprefix = require('gulp-autoprefixer'); 
var glob = require('gulp-sass-glob'); 
var uglify = require('gulp-uglify'); 
var concat = require('gulp-concat'); 
var rename = require('gulp-rename'); 
var sourcemaps = require('gulp-sourcemaps'); 


var sassOptions = { 
    errLogToConsole: true, 
    outputStyle: 'compressed', 
    sourceComments: 'line_comments', 
    includePaths: config.css.includePaths 
}; 


var uglifyOptions = { 
    preserveComments: 'license', 
    warnings: 'true' 
}; 

// CSS. 
gulp.task('css', function() { 
    return gulp.src(config.css.src) 
    .pipe(glob()) 
    .pipe(plumber({ 
     errorHandler: function (error) { 
     notify.onError({ 
      title: 'Gulp', 
      subtitle: 'Failure!', 
      message: 'Error: <%= error.message %>', 
      sound: 'Beep' 
     })(error); 
     this.emit('end'); 
     }})) 
    .pipe(sourcemaps.init()) 
    .pipe(sass(sassOptions).on('error', sass.logError)) 
    .pipe(autoprefix('last 2 versions', '> 1%', 'ie 9', 'ie 10')) 
    .pipe(sourcemaps.write('./maps')) 
    .pipe(gulp.dest(config.css.dest)) 
    .pipe(browserSync.reload({stream: true, injectChanges: true, match: '**/*.css'})); 
}); 

// Compress images. 
gulp.task('images', function() { 
    return gulp.src(config.images.src) 
    .pipe(imagemin({ 
     progressive: true, 
     svgoPlugins: [{removeViewBox: false}], 
     use: [pngcrush()] 
    })) 
    .pipe(gulp.dest(config.images.dest)); 
}); 

// Fonts. 
gulp.task('fonts', function() { 
    return gulp.src(config.fonts.src) 
    .pipe(gulp.dest(config.fonts.dest)); 
}); 


// Concat all js files into one index.min.js file 
gulp.task('scripts', function() { 
    return gulp.src(config.js.src) 
    .pipe(concat('./js/index.js')) 
    .pipe(gulp.dest('./js/')) 
    .pipe(rename({suffix: '.min'})) 
    .pipe(uglify(uglifyOptions)) 
    .pipe(gulp.dest('./assets/dist/')) 
    .pipe(notify({message: 'Rebuild all custom scripts. Please refresh your browser'})); 
}); 

// Watch task. 
gulp.task('watch', function() { 
    gulp.watch(config.css.src, ['css']); 
    gulp.watch(config.fonts.src, ['fonts']); 
    gulp.watch(config.js.src, ['scripts']); 
    gulp.watch(config.images.src, ['images']); 
}); 

// Static Server + Watch 
gulp.task('serve', ['css', 'fonts', 'scripts', 'watch'], function() { 
    browserSync.init({ 
    proxy: config.proxy 
    }); 
}); 

// Run drush to clear the theme registry. 
gulp.task('drush', shell.task([ 
    'drush cache-clear theme-registry' 
])); 

// Default Task 
gulp.task('default', ['serve']); 
+4

正確に何が変更されたのか、なぜ問題が発生したのか説明しない限り、 – zerkms

+0

実際、私は上記のコメントに書いています。 \t 私はそれを解決したと思います。 uglify minifiedファイルは、カスタムjsファイルと同じフォルダにあります。私は同じフォルダをチェックし、concat + minifyして、同じフォルダにダンプするように求めていた..それは私に再帰性のようなにおいをしない:) –

関連する問題