我吞下了Malloc的错误

时间:2014-10-23 21:39:27

标签: javascript malloc gulp

有趣的是我如何通过gulp获取内存分配错误,无论错误输出如何:

gulp compile:development
[15:33:51] Warning: gulp version mismatch:
[15:33:51] Global gulp is 3.8.7
[15:33:51] Local gulp is 3.8.6
[15:33:52] Using gulpfile ~/Dropbox/AisisGit/Zen/gulpfile.js
[15:33:52] Starting 'bower'...
[15:33:52] Using cwd:  ./
[15:33:52] Using bower dir:  ./bower_components
[15:33:52] Starting 'compile:jsx'...
[15:33:52] Starting 'compile:js:development'...
[15:33:52] Starting 'compile:sass:development'...
[15:33:52] Starting 'serve'...
[15:33:52] Finished 'serve' after 1.88 ms
[15:33:52] Server started on 9010 port
[15:33:52] Finished 'compile:jsx' after 376 ms
[15:33:52] Finished 'compile:js:development' after 371 ms
[15:33:52] Starting 'watch:compilejs'...
[15:33:52] Finished 'watch:compilejs' after 6.4 μs
gulp(97412,0x7fff7ba57300) malloc: *** error for object 0x10598e5a9: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

现在让我们看看它自己的gulp文件。

var gulp = require('gulp');
var bower = require('gulp-bower');
var serve = require('gulp-serve');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var ugly = require('gulp-uglify');
var minifyCss = require('gulp-minify-css');
var livereload = require('gulp-livereload');
var watch = require('gulp-watch');
var react = require('gulp-react');

gulp.task('default', function() {} );

gulp.task('compile:production',
  [
    'bower',
    'compile:jsx',
    'compile:js',
    'compile:sass',
  ]
);

gulp.task('compile:development',
  [
    'bower',
    'compile:jsx',
    'compile:js:development',
    'compile:sass:development',
    'serve',
    'watch'
  ]
);

gulp.task('watch:compilejs',
  [
    'compile:jsx',
    'compile:js:development',
  ]
);

gulp.task('watch:compilecss',
  [
    'compile:sass:development'
  ]
);

gulp.task('compile:sass', function() {
  return gulp.src([
    'src/css/*.scss'
    ]).pipe(concat('style.scss'))
    .pipe(sass())
    .pipe(minifyCss())
    .pipe(gulp.dest('dist/css/'))
});

gulp.task('compile:sass:development', function() {
  return gulp.src([
    'src/css/*.scss'
    ]).pipe(concat('style.css'))
    .pipe(sass())
    .pipe(gulp.dest('compiled/css/'))
});

gulp.task('compile:jsx', function() {
  return gulp.src([
    'src/js/**/*.jsx',
  ]).pipe(react())
    .pipe(gulp.dest('src/react-compiled/'))
});

gulp.task('compile:js', function() {

  return gulp.src([
    'src/js/**/*.js',
    'src/react-compiled/**/*.js'
  ]).pipe(concat('dist.js'))
    .pipe(ugly())
    .pipe(gulp.dest('dist/js/'));

});

gulp.task('compile:js:development', function() {

  return gulp.src([
    'src/js/**/*.js',
    'src/react-compiled/**/*.js'
  ]).pipe(concat('dist.js'))
    .pipe(gulp.dest('dist/js/'));

});

gulp.task('watch', ['watch:compilejs', 'watch:compilecss'], function() {
  var server = livereload();
  gulp.watch('src/js/**/*.js', ['watch:compilejs']);
  gulp.watch('src/js/**/*.js.jsx', ['watch:compilejs']);
  gulp.watch('src/css/**/*.scss', ['watch:compilecss']);
  gulp.watch('compiled/**').on('change', function(file) {
    server.changed(file.path);
  });
});

gulp.task('bower', function() {
  return bower({dir: './bower-components', cwd: './'});
});

gulp.task('serve', serve({
  root: 'compiled/',
  port: 9010,
}));

很明显,我要么做了一些严重的错误来获取内存分配错误,要么在更高层次上出现了错误。我为另一个项目使用了类似的gulp文件 - 唯一的区别是另一个项目有移动图像和字体文件。

任何方式,我的gulp文件有什么问题或者这里有更大的东西吗?

3 个答案:

答案 0 :(得分:22)

我带着同样的问题来到这个网站。我试过卸载/重新安装,但它没有用。

我在他们的Github页面上发现了这个问题: https://github.com/dlmanning/gulp-sass/issues/104

看起来gulp-sass插件和空文件可能存在问题。尝试在.scss文件中添加一行,您应该设置。它对我有用。

答案 1 :(得分:2)

我认为您可能需要重建模块。

我升级到OS X Yosemite之后看到了一个非常类似的错误,尽管我的问题是gulp-sass。

删除node_modules并再次运行npm install可以解决我的问题。

答案 2 :(得分:0)

2018年回归:https://github.com/sass/node-sass/issues/2280

降级至"node-sass": "^4.7.2",直到修正公开。