2015-06-23 17 views
5

gulpfile.jsGulp Błąd: tarło 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'); 
}); 

łyk/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, []); 
}); 

węzeł wersji: v0.10.25
npm wersja: 1.3.10
łyk CLI i lokalna wersja: 3.9.0
OS: Ubuntu 14.04.2 LTS

ja również zainstalować wszystkie pakiety węzłów prawidłowo i bez błędów. Ale jeśli uruchomię gulp serve
uzyskać Error: spawn EACCES

wyraźnie odinstalowane węzeł, KMP, altanę, łyk itp i zainstalować je już, ale to nie rozwiązało problemu.

Oto cały dziennik błędów podczas uruchamiania gulp serve:

[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

To ma coś wspólnego z portu, którego używasz, a nie łykać sam. – jsam

+0

Dziękuję za pomoc. Ale o co ci chodzi? Port nie jest bezpłatny? Jest używany przez inny program lub coś takiego? Jeśli tak, w jaki sposób mogę go uwolnić lub zmienić port? A jeśli się mylę, czy możesz mi powiedzieć, co twoim zdaniem powinienem zrobić? – solomonculaste

+0

Co robi 'gulp serve'? Nie wydaje się tutaj zdefiniowane. –

Odpowiedz

0

Co folder jest Twój projekt? wpadłem na skutek błędu EACCES bo miałem aplikacja zainstalowana w katalogu/opt

próbowałeś uruchomiony serwer za pomocą polecenia węzeł server.js?

+0

Co masz na myśli? Przy okazji próbowałem uruchomić moją aplikację na innym komputerze (moim laptopie) i działa jak urok. Nie wiem, co jest nie tak z moim środowiskiem programistycznym tutaj na moim pulpicie. Czy masz jakieś wskazówki, co jest nie tak? Czy są jakieś konfiguracje na węźle lub npm lub na uprawnienia? @SeeDart – solomonculaste

+0

W zależności od uprawnień twojego komputera, może być konieczne użycie sudo do uruchamiania poleceń w określonych folderach. Exa: Kiedy pracuję nad maszyną wirtualną w mojej pracy, nie mam uprawnień administratora, nie mogę przechowywać stosu MEAN pod/opt. Które jest tradycyjnie używane w oprogramowaniu OPTional. Wystąpił problem z próbą użycia sudo z gulp (który będzie narzekał, że nie potrzebuje dostępu administratora, więc nie powinieneś uruchamiać go z sudo). Może to być również problem z portem. ** node server.js ** odnosiło się tylko do używania węzła do uruchomienia serwera, nie gulp. – Skam

7

Problem polegał na tym, że browserSync próbuje otworzyć moją przeglądarkę, zgłasza błąd z powodu problemu z uprawnieniami. dodanie open: false rozwiązuje problem.

łyk/server.js

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

wiem, że nie jest już konieczne, aby rozwiązać problem uprawnień, ale myślę, że może byłoby miło, jeśli po uruchomieniu serwera rozwoju, to automatycznie otwiera przeglądarka (nowa zakładka, jeśli przeglądarka jest już otwarta). Wszelkie sugestie i/lub rozwiązania są mile widziane. Dziękuje wszystkim.

3

Miałem do czynienia z tym samym problemem podczas uruchamiania tego na Ubuntu, mimo że wszystko działało poprawnie w oknach, ustawienie otwarte: false w inicjalizacji browsersync rozwiązało problem.

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