2015-06-23 15 views
5

gulpfile.jsGulp: uova 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'); 
}); 

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

nodo versione: v0.10.25
NPM versione: 1.3.10
gulp CLI e locale versione: 3.9.0
OS: Ubuntu 14.04.2 LTS

Ho anche installare tutti i pacchetti dei nodi correttamente e senza errori. Ma se corro gulp serve
ho la Error: spawn EACCES

ho chiaramente disinstallato nodo, NPM, pergolato, gulp ecc e installato già tornato ma non risolto il problema.

Ecco l'intero log degli errori quando corro 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

Questo ha qualcosa a che fare con la porta che si sta utilizzando e non gulp sé. – jsam

+0

Grazie per il vostro aiuto. Ma cosa intendi? La porta non è gratuita? È usato da un altro programma o qualcosa del genere? Se sì, come posso liberarlo o cambiare la porta? O se sbaglio, puoi dirmi cosa pensi che dovrei fare? – solomonculaste

+0

Cosa fa 'gulp serve'? Non sembra essere definito qui. –

risposta

0

Qual cartella è il progetto in? mi sono imbattuto in un errore a causa EACCES perché avevo la mia app installata in/opt

Hai provato in esecuzione il server utilizzando il comando nodo server.js?

+0

Cosa intendi? Dal modo in cui ho provato a eseguire la mia applicazione su un'altra macchina (il mio portatile) e funziona come un fascino. Non so cosa c'è di sbagliato nel mio ambiente di sviluppo qui sul mio desktop. Hai qualche indizio cosa c'è che non va? Esiste qualche configurazione sul nodo o su npm o sulle autorizzazioni? @SeeDart – solomonculaste

+0

In base alle autorizzazioni del proprio computer, potrebbe essere necessario utilizzare sudo per eseguire comandi in determinate cartelle. Exa: quando eseguo lo sviluppo su una VM sul mio lavoro, non ho diritti di amministratore, non posso memorizzare il mio stack MEAN sotto/opt. Che viene tradizionalmente utilizzato per il software OPTional. Quindi stavo correndo il problema con il tentativo di usare sudo con gulp (che si lamenterà che non ha bisogno di accesso amministratore quindi non si dovrebbe eseguire con sudo). Potrebbe anche essersi verificato un problema con la porta. ** nodo server.js ** si stava solo riferendo all'utilizzo del nodo per avviare il server non gulp. – Skam

7

Il problema si verificava quando browserSync tenta di aprire il browser, genera l'errore a causa di un problema di autorizzazione. l'aggiunta di open: false risolve il problema.

sorso/server.js

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

io so che non è già necessario per risolvere il problema di autorizzazione, ma penso che forse sarebbe bello se quando si esegue il server di sviluppo, si apre automaticamente la browser (nuova scheda se il browser è già aperto) per te. Qualsiasi suggerimento e/o soluzione è molto apprezzato. Grazie a tutti.

3

Stavo affrontando lo stesso problema durante l'esecuzione di questo su Ubuntu anche se tutto funzionava bene su Windows, impostazione aperta: false in initialization browser risolto il problema.

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