我正在开展IONIC项目,
当我添加android平台时,它给我一个这样的错误。
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)
我的hooks \ 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 :(得分:5)
只需删除您的hooks目录并输入此命令。
ionic hooks add
它将解决您的问题。
答案 1 :(得分:2)
请检查您的SELECT *
FROM (
SELECT id
,place
,round((
cnt / sum(cnt) OVER (
ORDER BY NULL
)
) * 100, 2) AS pct
FROM (
SELECT a.id
,a.place
,count(a.id) AS cnt
FROM injury_place a
JOIN person_injuryPlace_map b ON a.id = b.injury_id
GROUP BY a.id
,a.place
)
)
pivot(max(id) , max(pct) pct FOR place IN (
'kitchen' AS kitchen
,'Washroom' Washroom
,'Rooftop' Rooftop
,'Garden' Garden
))
是否具有执行权限。授予挂钩及其子文件夹的所有权限
答案 2 :(得分:1)
如果您的任何文件出错,它也会失败并显示错误代码1。检查以确保在此之前没有告诉您文件中的任何错误。
答案 3 :(得分:1)
在我的例子中,我创建了一个after_prepare挂钩来覆盖cordova构建过程以使用config.xml中指定的实际versionCode。我有同样的错误。 我通过添加&#34; #!/ usr / bin / env node &#34;解决了这个问题。在我的钩子文件(没有引号)的顶部。解决了一切。希望它可以帮助你。
答案 4 :(得分:0)
我遇到类似问题,Moodle Mobile 2版本返回此错误 - 我错过了主目录中的'node_modules'文件夹,以便完成构建。
希望这有帮助