2015-11-02 3 views
3

Я работаю над проектом ионными,Ошибка: Hook неудачу с кодом ошибки 1:

в то время как я добавляю андроид платформы, она дает мне ошибку, как это.

Error: Hook failed with error code 1: D:\IONIC Workspace\risecx-app\hooks\before_prepare\01_jshint.js 
    at C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\hooks\HooksRunner.js:195:23 
    at _rejected (C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:797:24) 
    at C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:823:30 
    at Promise.when (C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:1035:31) 
    at Promise.promise.promiseDispatch (C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:741:41) 
    at C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:557:44 
    at flush (C:\Users\HP\AppData\Roaming\npm\node_modules\cordova\node_modules\q\q.js:108:17) 
    at doNTCallback0 (node.js:417:9) 
    at process._tickCallback (node.js:346:13) 

мои крючки \ before_prepare \ 01_jshint.js файл как ...

#!/usr/bin/env node 

var fs = require('fs'); 
var path = require('path'); 
var jshint = require('jshint').JSHINT; 
var async = require('async'); 

var foldersToProcess = [ 'js', 'js/services' ]; 

foldersToProcess.forEach(function(folder) { 
     processFiles("www/" + folder); 
}); 

function processFiles(dir, callback) { 
     var errorCount = 0; 
     fs.readdir(dir, function(err, list) { 
       if (err) { 
         console.log('processFiles err: ' + err); 
         return; 
       } 
       async.eachSeries(list, function(file, innercallback) { 
         file = dir + '/' + file; 
         fs.stat(file, function(err, stat) { 
           if(!stat.isDirectory()) { 
             if(path.extname(file) === ".js") { 
               lintFile(file, function(hasError) { 
                 if(hasError) { 
                   errorCount++; 
                 } 
                 innercallback(); 
               }); 
             } else { 
               innercallback(); 
             } 
           } else { 
             innercallback(); 
           } 
         }); 
       }, function(error) { 
         if(errorCount > 0) { 
           process.exit(1); 
         } 
       }); 
     }); 
} 

function lintFile(file, callback) { 
     console.log("Linting " + file); 
     fs.readFile(file, function(err, data) { 
       if(err) { 
         console.log('Error: ' + err); 
         return; 
       } 
       if(jshint(data.toString())) { 
         console.log('File ' + file + ' has no errors.'); 
         console.log('-----------------------------------------'); 
         callback(false); 
       } else { 
         console.log('Errors in file ' + file); 
         var out = jshint.data(), 
         errors = out.errors; 
         for(var j = 0; j < errors.length; j++) { 
           console.log(errors[j].line + ':' + errors[j].character + ' -> ' + errors[j].reason + ' -> ' + 
errors[j].evidence); 
         } 
         console.log('-----------------------------------------'); 
         callback(true); 
       } 
     }); 
} 

Я работал со следующими командами ....

npm install jshint --save

npm install q --save

npm install async

поэтому любая идея, где Я делаю ошибку ....

+0

который вы используете? – Muhsin

+0

обновите свой jshint с помощью команды npm update jshint и обновите все (Cordova, Ionic CLI, Ionic Lib) – Muhsin

+0

Я работаю над Windows 7 @Muhsin – RBK

ответ

2

Пожалуйста, проверьте, что у вашего hooks directory есть разрешения на выполнение. Предоставьте все разрешения на крючки, и это c hild folders

+1

Разрешения на Windows ??? – Cozzbie

1

Он также терпит неудачу с кодом ошибки 1, если у вас есть ошибка в любом из ваших файлов. Убедитесь, что он не сообщил вам о каких-либо ошибках в ваших файлах до этого.

0

У меня была аналогичная проблема с сборкой Moodle Mobile 2, возвращающей эту ошибку - мне не хватало папку «node_modules» из основного каталога для завершения сборки.
Надеюсь, что это поможет

5

Просто удалите каталог ваших крючков и введите эту команду.

ionic hooks add

Это позволит решить вашу проблему.

+0

Нет такой команды, пожалуйста, обновите ответ –

1

В моем случае я создал привязку after_prepare, чтобы переопределить процесс сборки cordova, чтобы использовать фактический код версии, указанный в файле config.xml. У меня была такая же ошибка. Я решил это, добавив «#!/Usr/bin/env node» в мой файл с крюком (без кавычек) наверху. Это все решило. Надеюсь, это может вам помочь.

Смежные вопросы