有趣的是我如何通过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文件有什么问题或者这里有更大的东西吗?
答案 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"
,直到修正公开。