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

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

我正在使用 Visual Studio 2015 RTM,并且正在处理一个 Cordova 项目。我的项目在 Android 上运行良好,但我无法为 IOS 构建它。我已经弄清楚问题是什么,但我无法弄清楚如何解决它。

当我为 IOS 构建时,它会将构建发送到安装在我的 Mac 计算机上的远程构建代理,但它会返回以下错误:

Could not find module 'Q'. Please Go to Tools --> Options --> Tools for Apache cordova --> Cordova Tools --> Clear Cordova Cache and try building again.

按照它的建议清除 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 库中得到修复,则看起来像这个问题,我只是不知道如何让 Visual Studio 和/或我的 Mac 上的远程构建代理使用最新版本的 cordova_ios 库。

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

最佳答案

如果您的 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 是当前发布的版本。

iOS 版本的“讨论”线程已经在进行中 - 它应该会在接下来的几周内发布。

您可以尝试使用 Git URI 来获取优势 - 但这可能会出现问题,因此请注意:

<engine name="ios" spec="https://github.com/apache/cordova-ios.git" />

关于ios - Visual Studio 2015 RTM Cordova IOS 构建错误 - 找不到模块 'Q',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31573161/

相关文章:

visual-studio-2015 - 如何设置 IBM DB2 9.7 以使用 Entity Framework 6 和 Visual Studio 2015?

jquery - Cordova for Visual Studio 2015 预览版 : not able to request content from a remote host

ajax - Ionic 3 Cordova ajax 调用在 Windows 10 (UWP) 上失败

azure - VSTS包管理: Missing NuGet package icons in own package feed

iphone - UISegmentedControl 在 UIView 中没有响应

iphone - 许多 CLLocationManager 实例

iphone - 特定月份和年份的 NSFetchRequest

c# - 主构造函数不再在 VS2015 中编译

visual-studio - Visual Studio 2015会在保存时删除文件-Cordova解决方案

ios - 如何在 swift 4.2 中将 UIView 变成圆形?