【问题标题】:Visual Studio 2015 RTM Cordova IOS Build Error - Could not find module 'Q'Visual Studio 2015 RTM Cordova IOS 构建错误 - 找不到模块“Q”
【发布时间】:2015-07-22 20:16:21
【问题描述】:

我正在使用 Visual Studio 2015 RTM,并且正在开发一个 Cordova 项目。我的项目适用于 Android,但我无法为 IOS 构建它。我已经弄清楚问题是什么,但我不知道如何解决它。

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

找不到模块“Q”。请转到工具 --> 选项 --> 工具 对于 Apache cordova --> Cordova Tools --> Clear Cordova Cache 并尝试 再次建造。

按照它的建议清除 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 库。

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

【问题讨论】:

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


    【解决方案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 是当前发布的版本。

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

    您可以尝试使用 Git URI 来获得优势 - 但这可能有问题,所以要小心:

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

    【讨论】:

      【解决方案2】:

      我认为我们应该简单地发布一个带有此错误修复的 Cordova 补丁。将在邮件列表上启动一个线程,以查看是否可以快速发布。

      【讨论】:

        【解决方案3】:

        您是否已经尝试重新安装 vs-tac?这是文档: https://msdn.microsoft.com/library/dn771551(v=vs.140).aspx#vstac

        【讨论】:

        • 我尝试重新安装 vs-tac 并没有解决问题。
        【解决方案4】:

        你在MAC机器上安装了什么版本的node?我有 0.12.2 并且 require(Q) 得到满足,没有任何错误。您可以尝试安装更新版本的 Node 吗?告诉我。

        【讨论】:

        • 原来 Mac OS X 文件系统可以区分大小写或不区分大小写(默认),如果是前者,这将是一个问题。你可以运行 diskutil info / 来检查你的文件系统是否区分大小写使用apple.stackexchange.com/questions/71357/…
        • Mac 有 node v0.12.7,这是 Node 的当前版本。 Mac 上的磁盘设置为区分大小写。看起来这不容易改变。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-14
        • 1970-01-01
        • 2015-05-08
        • 2015-01-22
        • 1970-01-01
        相关资源
        最近更新 更多