ios – 使用EACCES和ENOENT在OS X上运行Cordova Build失败

ios – 使用EACCES和ENOENT在OS X上运行Cordova Build失败,第1张

概述我最近开始使用Cordova构建iOS应用程序,但我遇到了障碍.在安装了nodeJS,git和cordova(使用sudo)之后,我在我的用户帐户的Documents文件夹中创建了我的第一个应用程序. 第一轮比赛完美无缺.一切正常,将我的开发帐户添加到Xcode帮助我的应用程序在设备上运行.我决定通过在< appName> / hooks / before_prepare文件夹中添加名为001_c 我最近开始使用Cordova构建iOS应用程序,但我遇到了障碍.在安装了nodeJs,git和cordova(使用sudo)之后,我在我的用户帐户的documents文件夹中创建了我的第一个应用程序.

第一轮比赛完美无缺.一切正常,将我的开发帐户添加到Xcode帮助我的应用程序在设备上运行.我决定通过在< appname> / hooks / before_prepare文件夹中添加名为001_c.Js的“before_prepare”挂钩来增加一些东西.这是钩子开始的方式:

//This is where nodeJs exists#!/usr/local/bin nodeconsole.log("Changing config");var fs = require('fs');var path = require('path');var rootdir = process.argv[2];//and so on

当我现在构建应用程序时,我收到此错误:

pc295786:master kellster$cordova build ios Running command:
/Users/kellster/documents/apps/master/hooks/before_prepare/001_c.Js
/Users/kellster/documents/apps/master Error: spawn EACCES
at exports._errnoException (util.Js:746:11)
at ChildProcess.spawn (child_process.Js:1155:11)
at Object.exports.spawn (child_process.Js:988:9)
at Object.exports.spawn (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.Js:104:31)
at runScriptViaChildProcessspawn (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.Js:188:23)
at runScript (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.Js:131:16)
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.Js:114:20
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:787:54)
at self.promisedispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:816:30)
at Promise.promise.promisedispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:749:13)

要进行故障排除,我更改了钩子脚本的第一行

#!/usr/local/bin node

#! node

(因为这适用于windows.节点在全球范围内).但是,这导致了一个ENOENT错误:

pc295786:master kellster $cordova build ios Running command:
/Users/kellster/documents/apps/master/hooks/before_prepare/001_c.Js
/Users/kellster/documents/apps/master Error: Hook Failed with error
code ENOENT:
/Users/kellster/documents/apps/master/hooks/before_prepare/001_c.Js
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/hooks/HooksRunner.Js:194:23
at _rejected (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:797:24)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.Js:823:30
at Promise.when (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:1035:31)
at Promise.promise.promisedispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:741:41)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.Js:557:44
at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.Js:108:17)
at process._tickCallback (node.Js:355:11)
at Function.Module.runMain (module.Js:503:11)
at startup (node.Js:129:16)

如何构建这个?我很感激我能尝试的任何建议.

有些事情需要注意:

>(在我的绝望中)我尝试运行以下命令,因为“EACCES”类型的错误.但是他们似乎都没有对结果产生任何影响.构建仍然失败.

06003

2)安装节点

/usr/local/bin

解决方法 旧答案:#!/usr/local/bin node – >更好的#!/usr/bin/env节点

更新的答案:不要使用空格来引用节点可执行文件而是使用:

#!/usr/local/bin/node

还要chmod你的脚本:例如:

chmod 777 hooks/before_prepare/onde.Js

其中onde.Js是你的脚本.如果您使用的是Mac(我的情况)或linux,那么您的.Js必须在chmod 777上以避免EACCES错误.

总结

以上是内存溢出为你收集整理的ios – 使用EACCES和ENOENT在OS X上运行Cordova Build失败全部内容,希望文章能够帮你解决ios – 使用EACCES和ENOENT在OS X上运行Cordova Build失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008054.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存