2016-12-03 64 views
1

我正在運行我自己的Ubuntu 16.04.1水滴,並且剛剛在全局安裝了'nodejs',npm和bower。然後在我一直在使用的Sage主題上安裝npm和bower。我能夠吞嚥幾乎所有東西,但是一旦我看到圖像,我就會遇到一個我一直在診斷時遇到的錯誤。任何幫助總是非常感謝!Gulp圖片在Ubuntu中失敗16

[email protected]:/var/www/html/mydomain.com/public_html/bedrock/web/app/themes/mytheme# gulp images 
[00:46:45] Using gulpfile /var/www/html/mydomain.com/public_html/bedrock/web/app/themes/mytheme/gulpfile.js 
[00:46:45] Starting 'images'... 

events.js:141 
     throw er; // Unhandled 'error' event 
    ^
Error: Command failed: /var/www/html/mydomain.com/public_html/bedrock/web/app/themes/mytheme/node_modules/optipng-bin/vendor/optipng -strip all -clobber -force -fix -o 2 -out /tmp/2fd7e3c1-977c-4ac4-9886-a84ecd44e9e8 /tmp/49ebf02e-f383-46e2-bc40-d6b03b441380 
/var/www/html/mydomain.com/public_html/bedrock/web/app/themes/mytheme/node_modules/optipng-bin/vendor/optipng: 1: /var/www/html/mydomain.com/public_html/bedrock/web/app/themes/mytheme/node_modules/optipng-bin/vendor/optipng: Syntax error: "(" unexpected 

at ChildProcess.exithandler (child_process.js:213:12) 
at emitTwo (events.js:87:13) 
at ChildProcess.emit (events.js:172:7) 
at maybeClose (internal/child_process.js:821:16) 
at Socket.<anonymous> (internal/child_process.js:319:11) 
at emitOne (events.js:77:13) 
at Socket.emit (events.js:169:7) 
at Pipe._onclose (net.js:469:12) 

這是gulpfile.js -

// ## Globals 
 
var argv   = require('minimist')(process.argv.slice(2)); 
 
var autoprefixer = require('gulp-autoprefixer'); 
 
var browserSync = require('browser-sync').create(); 
 
var changed  = require('gulp-changed'); 
 
var concat  = require('gulp-concat'); 
 
var flatten  = require('gulp-flatten'); 
 
var gulp   = require('gulp'); 
 
var gulpif  = require('gulp-if'); 
 
var imagemin  = require('gulp-imagemin'); 
 
var jshint  = require('gulp-jshint'); 
 
var lazypipe  = require('lazypipe'); 
 
var less   = require('gulp-less'); 
 
var merge  = require('merge-stream'); 
 
var cssNano  = require('gulp-cssnano'); 
 
var plumber  = require('gulp-plumber'); 
 
var rev   = require('gulp-rev'); 
 
var runSequence = require('run-sequence'); 
 
var sass   = require('gulp-sass'); 
 
var sourcemaps = require('gulp-sourcemaps'); 
 
var uglify  = require('gulp-uglify'); 
 

 
// See https://github.com/austinpray/asset-builder 
 
var manifest = require('asset-builder')('./assets/manifest.json'); 
 

 
// `path` - Paths to base asset directories. With trailing slashes. 
 
// - `path.source` - Path to the source files. Default: `assets/` 
 
// - `path.dist` - Path to the build directory. Default: `dist/` 
 
var path = manifest.paths; 
 

 
// `config` - Store arbitrary configuration values here. 
 
var config = manifest.config || {}; 
 

 
// `globs` - These ultimately end up in their respective `gulp.src`. 
 
// - `globs.js` - Array of asset-builder JS dependency objects. Example: 
 
// ``` 
 
// {type: 'js', name: 'main.js', globs: []} 
 
// ``` 
 
// - `globs.css` - Array of asset-builder CSS dependency objects. Example: 
 
// ``` 
 
// {type: 'css', name: 'main.css', globs: []} 
 
// ``` 
 
// - `globs.fonts` - Array of font path globs. 
 
// - `globs.images` - Array of image path globs. 
 
// - `globs.bower` - Array of all the main Bower files. 
 
var globs = manifest.globs; 
 

 
// `project` - paths to first-party assets. 
 
// - `project.js` - Array of first-party JS assets. 
 
// - `project.css` - Array of first-party CSS assets. 
 
var project = manifest.getProjectGlobs(); 
 

 
// CLI options 
 
var enabled = { 
 
    // Enable static asset revisioning when `--production` 
 
    rev: argv.production, 
 
    // Disable source maps when `--production` 
 
    maps: !argv.production, 
 
    // Fail styles task on error when `--production` 
 
    failStyleTask: argv.production, 
 
    // Fail due to JSHint warnings only when `--production` 
 
    failJSHint: argv.production, 
 
    // Strip debug statments from javascript when `--production` 
 
    stripJSDebug: argv.production 
 
}; 
 

 
// Path to the compiled assets manifest in the dist directory 
 
var revManifest = path.dist + 'assets.json'; 
 

 
// ## Reusable Pipelines 
 
// See https://github.com/OverZealous/lazypipe 
 

 
// ### CSS processing pipeline 
 
// Example 
 
// ``` 
 
// gulp.src(cssFiles) 
 
// .pipe(cssTasks('main.css') 
 
// .pipe(gulp.dest(path.dist + 'styles')) 
 
// ``` 
 
var cssTasks = function(filename) { 
 
    return lazypipe() 
 
    .pipe(function() { 
 
     return gulpif(!enabled.failStyleTask, plumber()); 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif(enabled.maps, sourcemaps.init()); 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif('*.less', less()); 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif('*.scss', sass({ 
 
     outputStyle: 'nested', // libsass doesn't support expanded yet 
 
     precision: 10, 
 
     includePaths: ['.'], 
 
     errLogToConsole: !enabled.failStyleTask 
 
     })); 
 
    }) 
 
    .pipe(concat, filename) 
 
    .pipe(autoprefixer, { 
 
     browsers: [ 
 
     'last 2 versions', 
 
     'android 4', 
 
     'opera 12' 
 
     ] 
 
    }) 
 
    .pipe(cssNano, { 
 
     safe: true 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif(enabled.rev, rev()); 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif(enabled.maps, sourcemaps.write('.', { 
 
     sourceRoot: 'assets/styles/' 
 
     })); 
 
    })(); 
 
}; 
 

 
// ### JS processing pipeline 
 
// Example 
 
// ``` 
 
// gulp.src(jsFiles) 
 
// .pipe(jsTasks('main.js') 
 
// .pipe(gulp.dest(path.dist + 'scripts')) 
 
// ``` 
 
var jsTasks = function(filename) { 
 
    return lazypipe() 
 
    .pipe(function() { 
 
     return gulpif(enabled.maps, sourcemaps.init()); 
 
    }) 
 
    .pipe(concat, filename) 
 
    .pipe(uglify, { 
 
     compress: { 
 
     'drop_debugger': enabled.stripJSDebug 
 
     } 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif(enabled.rev, rev()); 
 
    }) 
 
    .pipe(function() { 
 
     return gulpif(enabled.maps, sourcemaps.write('.', { 
 
     sourceRoot: 'assets/scripts/' 
 
     })); 
 
    })(); 
 
}; 
 

 
// ### Write to rev manifest 
 
// If there are any revved files then write them to the rev manifest. 
 
// See https://github.com/sindresorhus/gulp-rev 
 
var writeToManifest = function(directory) { 
 
    return lazypipe() 
 
    .pipe(gulp.dest, path.dist + directory) 
 
    .pipe(browserSync.stream, {match: '**/*.{js,css}'}) 
 
    .pipe(rev.manifest, revManifest, { 
 
     base: path.dist, 
 
     merge: true 
 
    }) 
 
    .pipe(gulp.dest, path.dist)(); 
 
}; 
 

 
// ## Gulp tasks 
 
// Run `gulp -T` for a task summary 
 

 
// ### Styles 
 
// `gulp styles` - Compiles, combines, and optimizes Bower CSS and project CSS. 
 
// By default this task will only log a warning if a precompiler error is 
 
// raised. If the `--production` flag is set: this task will fail outright. 
 
gulp.task('styles', ['wiredep'], function() { 
 
    var merged = merge(); 
 
    manifest.forEachDependency('css', function(dep) { 
 
    var cssTasksInstance = cssTasks(dep.name); 
 
    if (!enabled.failStyleTask) { 
 
     cssTasksInstance.on('error', function(err) { 
 
     console.error(err.message); 
 
     this.emit('end'); 
 
     }); 
 
    } 
 
    merged.add(gulp.src(dep.globs, {base: 'styles'}) 
 
     .pipe(cssTasksInstance)); 
 
    }); 
 
    return merged 
 
    .pipe(writeToManifest('styles')); 
 
}); 
 

 
// ### Scripts 
 
// `gulp scripts` - Runs JSHint then compiles, combines, and optimizes Bower JS 
 
// and project JS. 
 
gulp.task('scripts', ['jshint'], function() { 
 
    var merged = merge(); 
 
    manifest.forEachDependency('js', function(dep) { 
 
    merged.add(
 
     gulp.src(dep.globs, {base: 'scripts'}) 
 
     .pipe(jsTasks(dep.name)) 
 
    ); 
 
    }); 
 
    return merged 
 
    .pipe(writeToManifest('scripts')); 
 
}); 
 

 
// ### Fonts 
 
// `gulp fonts` - Grabs all the fonts and outputs them in a flattened directory 
 
// structure. See: https://github.com/armed/gulp-flatten 
 
gulp.task('fonts', function() { 
 
    return gulp.src(globs.fonts) 
 
    .pipe(flatten()) 
 
    .pipe(gulp.dest(path.dist + 'fonts')) 
 
    .pipe(browserSync.stream()); 
 
}); 
 

 
// ### Images 
 
// `gulp images` - Run lossless compression on all the images. 
 
gulp.task('images', function() { 
 
    return gulp.src(globs.images) 
 
    .pipe(imagemin({ 
 
     progressive: true, 
 
     interlaced: true, 
 
     svgoPlugins: [{removeUnknownsAndDefaults: false}, {cleanupIDs: false}] 
 
    })) 
 
    .pipe(gulp.dest(path.dist + 'images')) 
 
    .pipe(browserSync.stream()); 
 
}); 
 

 
// ### JSHint 
 
// `gulp jshint` - Lints configuration JSON and project JS. 
 
gulp.task('jshint', function() { 
 
    return gulp.src([ 
 
    'bower.json', 'gulpfile.js' 
 
    ].concat(project.js)) 
 
    .pipe(jshint()) 
 
    .pipe(jshint.reporter('jshint-stylish')) 
 
    .pipe(gulpif(enabled.failJSHint, jshint.reporter('fail'))); 
 
}); 
 

 
// ### Clean 
 
// `gulp clean` - Deletes the build folder entirely. 
 
gulp.task('clean', require('del').bind(null, [path.dist])); 
 

 
// ### Watch 
 
// `gulp watch` - Use BrowserSync to proxy your dev server and synchronize code 
 
// changes across devices. Specify the hostname of your dev server at 
 
// `manifest.config.devUrl`. When a modification is made to an asset, run the 
 
// build step for that asset and inject the changes into the page. 
 
// See: http://www.browsersync.io 
 
gulp.task('watch', function() { 
 
    browserSync.init({ 
 
    files: ['{lib,templates}/**/*.php', '*.php'], 
 
    proxy: config.devUrl, 
 
    snippetOptions: { 
 
     whitelist: ['/wp-admin/admin-ajax.php'], 
 
     blacklist: ['/wp-admin/**'] 
 
    } 
 
    }); 
 
    gulp.watch([path.source + 'styles/**/*'], ['styles']); 
 
    gulp.watch([path.source + 'scripts/**/*'], ['jshint', 'scripts']); 
 
    gulp.watch([path.source + 'fonts/**/*'], ['fonts']); 
 
    gulp.watch([path.source + 'images/**/*'], ['images']); 
 
    gulp.watch(['bower.json', 'assets/manifest.json'], ['build']); 
 
}); 
 

 
// ### Build 
 
// `gulp build` - Run all the build tasks but don't clean up beforehand. 
 
// Generally you should be running `gulp` instead of `gulp build`. 
 
gulp.task('build', function(callback) { 
 
    runSequence('styles', 
 
       'scripts', 
 
       ['fonts', 'images'], 
 
       callback); 
 
}); 
 

 
// ### Wiredep 
 
// `gulp wiredep` - Automatically inject Less and Sass Bower dependencies. See 
 
// https://github.com/taptapship/wiredep 
 
gulp.task('wiredep', function() { 
 
    var wiredep = require('wiredep').stream; 
 
    return gulp.src(project.css) 
 
    .pipe(wiredep()) 
 
    .pipe(changed(path.source + 'styles', { 
 
     hasChanged: changed.compareSha1Digest 
 
    })) 
 
    .pipe(gulp.dest(path.source + 'styles')); 
 
}); 
 

 
// ### Gulp 
 
// `gulp` - Run a complete build. To compile for production run `gulp --production`. 
 
gulp.task('default', ['clean'], function() { 
 
    gulp.start('build'); 
 
});

+0

包括你一飲而盡文件將是一個huugggeeee幫助或您的帖子可能會得到downvoted被遺忘 – Datsik

+0

我已經被遺忘了太多的時間。謝謝你的提示。 –

回答

0

我會更新這個對於可能落在這裏,將來任何人。

我找不到gulp失敗的確切原因,我的猜測是它是一個間距/選項卡錯誤。我從sage主題中刪除了node_modules,並重新安裝了npm,並且錯誤自行糾正了。