我正在使用Visual Studio 2015 RTM,我正在开发Cordova项目。我的项目适用于Android,但我不能让它为IOS构建。我已经弄清楚问题是什么,但我无法弄清楚如何解决它。
当我为IOS构建时,它将构建发送到我的Mac计算机上安装的远程构建代理,但它返回以下错误:
无法找到模块'Q'。请转到工具 - >选项 - >工具 对于Apache cordova - > Cordova工具 - >清除Cordova缓存并尝试 再次建设。
遵循它的建议并清除Cordova缓存没有帮助。我做了一些研究,发现它是cordova_ios库中的一个错误。以下是修复错误https://github.com/apache/cordova-ios/commit/ed272032878959c90eb28ccc1490e96fb7b69287的提交的链接。
基本上问题是check_reqs.js文件需要'Q'(大写)而不是'q'(小写)。
我可以通过执行以下操作解决问题(并确认这是问题):
我不知道如何在Visual Studio中解决这个问题,以便我可以从Visual Studio构建?我已经尝试在安装Visual Studio的计算机上进行NPM更新,但是没有修复它。我还尝试通过Cordova命令行手动将IOS平台添加到我的项目中,然后更改我在Mac上更改的同一文件,但这也没有修复它。
如果在最新版本的cordova_ios库中修复了这个问题,我就无法弄清楚如何让Mac上的Visual Studio和/或远程构建代理使用最新版本的cordova_ios库。< / p>
更新 看起来这是其他人在Cordova看到的错误。有关于here和here的讨论。我可以在我的Mac电脑上重现这个。如果我创建一个新的Cordova项目并添加iOS平台并尝试为iOS构建它我收到此错误。然后我可以通过打开check_reqs.js文件并将大写的'Q'更改为小写'q'来纠正问题。但是,当我从Visual Studio构建时,它使用不正确的check_req.js文件将项目发送到Mac并且构建失败。从Visual Studio进行iOS构建时,我无法弄清楚如何解决这个问题。
答案 0 :(得分:1)
如果你的OSX机器有一个区分大小写的文件系统,你可以点击这个,虽然修复工作正在进行中。 (大多数人都没有打开案例的敏感性。)
您引用的修补程序尚未公开发布。您可以在此处查看“平台”版本:http://cordova.apache.org/
平台发布后,很可能还会发生Cordova CLI更新(例如:5.1.2),因此您只需通过配置设计器更新到该版本。
但是,作为替代方案,您可以将以下内容添加到config.xml文件中,以使Cordova使用不同的iOS平台版本,然后在VS中执行“清理”以强制它生效:
<engine name="ios" spec="3.9.0" />
3.8.0是当前发布的版本。
“DISCUSS”主题已经开始用于iOS版本 - 它应该会在接下来的几周内发布。
你可以尝试使用Git URI获得优势 - 但这可能是错误的,所以运动护理:
<engine name="ios" spec="https://github.com/apache/cordova-ios.git" />
答案 1 :(得分:1)
我认为我们应该通过此错误修复简单地执行Cordova的补丁发布。将在邮件列表上启动一个帖子,看看是否可以快速发布。
答案 2 :(得分:0)
您是否已尝试重新安装vs-tac?这是文档: https://msdn.microsoft.com/library/dn771551(v=vs.140).aspx#vstac
答案 3 :(得分:0)
您在MAC计算机上安装了哪个版本的节点?我有0.12.2并且require(Q)得到满足而没有任何错误。你能尝试安装更新版本的Node吗?让我知道。