2015-06-23 7 views
5

gulpfile.jsGulp Fehler: Laich EACCES

'use strict'; 

var gulp = require('gulp'); 

gulp.paths = { 
    src: 'src', 
    dist: 'dist', 
    tmp: '.tmp', 
    e2e: 'e2e' 
}; 

require('require-dir')('./gulp'); 

gulp.task('build', ['clean'], function() { 
    gulp.start('buildapp'); 
}); 

schluck/server.js

'use strict'; 

var gulp = require('gulp'); 

var paths = gulp.paths; 

var util = require('util'); 

var browserSync = require('browser-sync'); 

var middleware = require('./proxy'); 

function browserSyncInit(baseDir, files, browser) { 
    browser = browser === undefined ? 'default' : browser; 

    var routes = null; 
    if(baseDir === paths.src || (util.isArray(baseDir) && baseDir.indexOf(paths.src) !== -1)) { 
    routes = { 
     '/bower_components': 'bower_components' 
    }; 
    } 

    browserSync.instance = browserSync.init(files, { 
    startPath: '/', 
    server: { 
     baseDir: baseDir, 
     middleware: middleware, 
     routes: routes 
    }, 
    browser: browser 
    }); 
} 

gulp.task('serve', ['watch'], function() { 
    browserSyncInit([ 
    paths.tmp + '/serve', 
    paths.src, 
    ], [ 
    paths.tmp + '/serve/{app,components}/**/*.css', 
    paths.src + '/{app,components}/**/*.js', 
    paths.src + 'src/assets/images/**/*', 
    paths.tmp + '/serve/*.html', 
    paths.tmp + '/serve/{app,components}/**/*.html', 
    paths.src + '/{app,components}/**/*.html' 
    ]); 
}); 

gulp.task('serve:dist', ['buildapp'], function() { 
    browserSyncInit(paths.dist); 
}); 

gulp.task('serve:e2e', ['inject'], function() { 
    browserSyncInit([paths.tmp + '/serve', paths.src], null, []); 
}); 

gulp.task('serve:e2e-dist', ['buildapp'], function() { 
    browserSyncInit(paths.dist, null, []); 
}); 

Knoten Version: v0.10.25
npm Version: 1.3.10
schluck CLI und lokale Version: 3.9.0
OS: Ubuntu 14.04.2 LTS

ich installieren auch alle Knotenpakete korrekt und fehlerfrei. Aber wenn ich gulp serve
laufen bekomme ich die Error: spawn EACCES

ich klar deinstalliert Knoten, npm, Bower, schluck usw. und installiert sie schon wieder, aber es ist nicht das Problem gelöst.

Hier ist der ganze Fehlerprotokoll, wenn ich gulp serve laufen:

[22:15:33] Using gulpfile /media/culaste/Data/Code/sampleapp/source/gulpfile.js 
[22:15:33] Starting 'styles'... 
[22:15:34] gulp-inject 26 files into app.scss. 
[22:15:34] Finished 'styles' after 1.24 s 
[22:15:34] Starting 'inject'... 
[22:15:34] gulp-inject 1 files into 404.tmpl.html. 
[22:15:34] gulp-inject 1 files into 500.tmpl.html. 
[22:15:35] gulp-inject 1 files into index.html. 
[22:15:35] gulp-inject 105 files into 404.tmpl.html. 
[22:15:35] gulp-inject 105 files into 500.tmpl.html. 
[22:15:35] gulp-inject 105 files into index.html. 
[22:15:35] Finished 'inject' after 668 ms 
[22:15:35] Starting 'watch'... 
[22:15:36] Finished 'watch' after 1.19 s 
[22:15:36] Starting 'serve'... 
[22:15:36] Finished 'serve' after 94 ms 
[BS] Local URL: http://localhost:3000/ 
[BS] External URL: http://192.168.8.101:3000/ 
[BS] Serving files from: .tmp/serve 
[BS] Serving files from: src 
[BS] Watching files... 

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: spawn EACCES 
    at errnoException (child_process.js:988:11) 
    at Process.ChildProcess._handle.onexit (child_process.js:779:34) 
+0

, dass etwas mit dem Hafen zu tun hat Sie verwenden, und schluckt selbst nicht. – jsam

+0

Vielen Dank für Ihre Hilfe. Aber was meinst du? Der Hafen ist nicht frei? Es wird von einem anderen Programm oder etwas verwendet? Wenn ja, wie kann ich es freigeben oder den Port ändern? Oder wenn ich falsch liege, kannst du mir sagen, was ich deiner Meinung nach tun sollte? – solomonculaste

+0

Was macht "Schluck servieren"? Scheint hier nicht definiert zu sein. –

Antwort

0

Welche Ordner ist Ihr Projekt in? lief ich in einen Fehler EACCES wegen, weil ich meine app unter/opt installiert hatte

Haben Sie den Server versucht, läuft mit dem Befehl Knoten server.js?

+0

Was meinst du? Übrigens habe ich versucht, meine Anwendung auf einer anderen Maschine (meinem Laptop) laufen zu lassen und das funktioniert wie ein Zauber. Ich weiß nicht, was hier auf meinem Desktop mit meiner Entwicklungsumgebung los ist. Hast du irgendwelche Hinweise, was ist los? Gibt es Konfigurationen auf Knoten oder npm oder die Berechtigungen Zeug? @SeeDart – solomonculaste

+0

Abhängig von den Berechtigungen Ihres Computers müssen Sie möglicherweise sudo verwenden, um Befehle in bestimmten Ordnern auszuführen. Exa: Wenn ich Entwicklung auf einer VM in meinem Job, ich habe keine Administratorrechte auf, kann ich nicht meine MEAN-Stack unter/opt speichern. Das wird traditionell für OPTional Software verwendet. Also habe ich Probleme mit dem Versuch, Sudo mit Schluck zu verwenden (das wird sich beschweren, dass es keinen Administratorzugriff benötigt, so dass Sie es nicht mit Sudo ausführen sollten). Könnte auch ein Portproblem gewesen sein. ** node server.js ** bezog sich nur auf die Verwendung von Knoten, um Ihren Server nicht zu starten. – Skam

7

Das Problem war, wenn BrowserSync versucht, meinen Browser zu öffnen, wird der Fehler wegen Berechtigungsproblem ausgelöst. Hinzufügen von open: false löst das Problem.

schluck/server.js

browserSync.instance = browserSync.init(files, { 
    startPath: '/', 
    open:false, 
    server: { 
     baseDir: baseDir, 
     middleware: middleware, 
     routes: routes 
    }, 
    browser: browser 
    }); 

Ich weiß, dass es nicht schon notwendig, um die Erlaubnis Problem zu beheben, aber ich denke, vielleicht wäre es schön, wenn, wenn Sie Ihren Entwicklungs-Server ausführen, wird es automatisch das eröffnet Browser (neuer Tab, wenn der Browser bereits geöffnet ist) für Sie. Irgendwelche Vorschläge und/oder Lösungen werden sehr geschätzt. Danke euch allen.

3

Ich war mit dem gleichen Problem konfrontiert, während dies auf Ubuntu ausgeführt, obwohl alles funktionierte gut auf Windows, Einstellung offen: False in Browsersync Initialisierung behoben das Problem.

browserSync.instance = browserSync.init(files, { 
    startPath: '/', 
    open:false, 
    server: { 
     baseDir: baseDir, 
     middleware: middleware, 
     routes: routes 
    }, 
    browser: browser 
    });