Visual Studio 2015 RTM Cordova IOS构建错误 - 找不到模块'Q'

时间:2015-07-22 20:16:21

标签: ios visual-studio-2015 visual-studio-cordova

我正在使用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'(小写)。

我可以通过执行以下操作解决问题(并确认这是问题):

  • 将我的Cordova项目复制到我的Mac电脑上。
  • 在命令行中添加IOS作为Cordova平台。
  • 转到/platforms/ios/cordova/lib/check_reqs.js文件,将第25行更改为小写'q'。
  • 在Mac上构建并运行项目。

我不知道如何在Visual Studio中解决这个问题,以便我可以从Visual Studio构建?我已经尝试在安装Visual Studio的计算机上进行NPM更新,但是没有修复它。我还尝试通过Cordova命令行手动将IOS平台添加到我的项目中,然后更改我在Mac上更改的同一文件,但这也没有修复它。

如果在最新版本的cordova_ios库中修复了这个问题,我就无法弄清楚如何让Mac上的Visual Studio和/或远程构建代理使用最新版本的cordova_ios库。< / p>

更新 看起来这是其他人在Cordova看到的错误。有关于herehere的讨论。我可以在我的Mac电脑上重现这个。如果我创建一个新的Cordova项目并添加iOS平台并尝试为iOS构建它我收到此错误。然后我可以通过打开check_reqs.js文件并将大写的'Q'更改为小写'q'来纠正问题。但是,当我从Visual Studio构建时,它使用不正确的check_req.js文件将项目发送到Mac并且构建失败。从Visual Studio进行iOS构建时,我无法弄清楚如何解决这个问题。

4 个答案:

答案 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吗?让我知道。