2014-09-04 2 views
1

나는 Cordova로 개발을 시작할 준비를하는 과정을 자동화하려하지만 CLI에는 많은 문제가 있습니다.깡통 작업과 코르도바를 실행하는 ENOENT

var gulp = require('gulp'), 
    uglify = require('gulp-uglify'), 
    jade = require('gulp-jade'), 
    shell = require('gulp-shell'), 
    coffee = require('gulp-coffee'), 
    runSequence = require('run-sequence'), 
    sass = require('gulp-ruby-sass'); 

gulp.task('build', function() { 
    gulp.src(['app/**/*.*']) 
     .pipe(gulp.dest('cordova/www/')); 
}); 

gulp.task('sass', function() { 
    gulp.src(['app/styles/main.scss']) 
     .pipe(sass()) 
     .pipe(gulp.dest('app/styles/')); 
}); 

gulp.task('cordova', function() { 
    return gulp.src('/', {read: false}) 
     .pipe(shell([ 
      'npm install cordova' 
     ])); 
}); 

gulp.task('folder', function() { 
    return gulp.src('/', {read: false}) 
     .pipe(shell([ 
      'mkdir -m 777 app' 
     ])); 
}); 

gulp.task('project', function() { 
    return gulp.src('/') 
     .pipe(shell([ 
      'cordova create . com.rvallespin.app app', 
      //'cordova platform add ios', 
      'cordova platform add android' 
     ], {cwd: '/app'})); 
}); 

gulp.task('plugins', function() { 
    return gulp.src('/') 
     .pipe(shell([ 
       'cordova plugin add https://github.com/apache/cordova-plugin-statusbar & ' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-device & ' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-network-information & ' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-battery-status &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-device-motion &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-device-orientation &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-geolocation &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-camera &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-media &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-media-capture &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-file &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-file-transfer &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-dialogs &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-vibration &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-contacts &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-globalization &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-splashscreen &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-inappbrowser &' + 
       'cordova plugin add https://github.com/apache/cordova-plugin-console' 
     ], {cwd: '/app'})); 
}); 

gulp.task('install', function() { 
    runSequence('cordova', 'folder', 'project', 'plugins'); 
}); 

gulp.task('default', function() { 
    gulp.watch("app/styles/main.scss", function (event) { 
     gulp.run('sass'); 
    }); 
}); 

내가 "프로젝트"또는 실행하는 경우 "플러그인"꿀꺽 항상 나에게이 메시지에 오류 반환 : 스폰 ENOENT 상세 사항 : 메시지를 '꿀꺽 쉘을'플러그인에

오류를 코드를 : ENOENT 의 errno : ENOENT 콜 : 산란은

내가 잘못 여기서 뭐하는 거지? 감사합니다.

+0

{cwd : '/ app'} 프로젝트를 ROOT 전용 폴더로 만들고 있습니다. ./app로 변경하는 것을 고려하십시오. – SteveLacy

답변

2

나는 동일한 문제가 있었고 추적 할 수있었습니다. 내 경우에 node_modules 폴더는 루트가 소유하고 있었지만 루트로 로그인하지 않았기 때문에 설치된 npm 모듈에 액세스 할 수있는 충분한 권한이 없었습니다. 그래서 내 잘못은 sudo을 사용하여 노드 모듈을 설치하는 것이 었습니다.

내 솔루션 : 쉘 명령 : sudo rm -r node_modules/ npm install

문제가 지속되면 : 당신의 NPM 설치에 대한 권한이 부족한 불평 경우이 , 당신이 당신의 ~/.npm 폴더의 소유권을 수정해야합니다. https://stackoverflow.com/a/27955349/1646019

편집 : 또 다른, 어쩌면 더 나은 솔루션이 절차있을 그 여전히 너무 도움이 충분하지 않으면

sudo chown -R ~/.npm

: 내 경우 나는 이런 식으로 고정 : npm/yeoman install generator-angular without sudo