【问题标题】:Cordova 8 + iOS 4.5.4 = cannot find module "../cordova/platform_metadata"Cordova 8 + iOS 4.5.4 = 找不到模块“../cordova/platform_metadata”
【发布时间】:2018-06-10 11:16:56
【问题描述】:

自从 Cordova v8 的最新更新以来,我无法在 Mac 上构建任何东西。 我总是得到

(node 626) UnhandledPromiseRejectionWarning: Error: Cannot find module '../cordova/platform_metadata'

我尝试了this 帖子中的建议,但我得到了同样的错误。

然后我做了一个详细说明,似乎为 ios 构建所需的插件无法正常工作

Executing script found in plugin cordova-plugin-swift-support for hook "after_prepare": plugins/cordova-plugin-swift-support/src/add-swift-support.js
Resolving module name for cordova-lib/src/cordova/platform_metadata => ../cordova/platform_metadata
(node:599) UnhandledPromiseRejectionWarning: Unhandled promise rejection 
(rejection id: 1): Error: Cannot find module '../cordova/platform_metadata'
(node:599) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.

【问题讨论】:

    标签: ios cordova


    【解决方案1】:

    这是cordova-plugin-add-swift-support 中的一个错误,只需将其更新到最新版本 (1.7.1)

    cordova plugin rm cordova-plugin-add-swift-support
    cordova plugin add cordova-plugin-add-swift-support
    

    【讨论】:

    • 谢谢,在我完成这个项目的工作后尝试一下:) 赞成
    • android 和 iOS 版本都出现错误。尝试此答案后已修复。
    • 两天以来一直在寻找解决此错误的方法。终于解决了。谢谢
    • 这适用于我的情况,但在:cordova platform remove ios 之后,然后更新 swift-support 并重新安装 cordova platform add ioscordova clean 对此无效。
    【解决方案2】:

    您需要降级 cordova 7.1.0,直到此问题得到解决。这样做:

     npm uninstall -g cordova
     npm install -g cordova@7.1.0
    
     cordova platform remove ios
     cordova platform add ios
    

    【讨论】:

    • 做出改变
    • 谢谢,现在试试,会回帖
    • 感谢它有效,将接受答案。你怎么知道?我们怎么知道???
    • @AjayReddy 该问题已在两周前修复
    • @jcesarmobile 的帖子现在应该是公认的答案。它对我有用。
    【解决方案3】:

    如果您运行需要 swift 插件的 ionic 项目,您需要添加 --force 标志:

    ionic cordova plugin rm cordova-plugin-add-swift-support --force
    

    然后运行:

    ionic cordova plugin add cordova-plugin-add-swift-support
    

    【讨论】:

    • 花了一个小时才搞定。谢谢你。
    【解决方案4】:

    这只是发生在我身上(使用 Ionic)。在 Ionic 中,问题来自仍在使用 cordova/platform_metadata 的插件或 node_module,但已弃用。

    如果您使用的是 Linux,请在您的项目目录中,在命令 shell 中尝试:

    grep -iRn 'platform_metadata'
    

    在我的情况下,插件 cordova-plugin-add-swift-support 仍在使用它,我什至没有在我的项目中使用该插件,所以我手动删除了它。问题解决了。当插件调用不再存在的模块时似乎会出现此问题,因此您必须删除该插件或更新它。

    【讨论】:

      【解决方案5】:

      使用 Ionic 3 和 Cordova 8.0.0 项目。 以下是步骤

      1. ionic cordova 平台删除 ios
      2. ionic cordova 插件 rm cordova-plugin-add-swift-support
      3. ionic cordova 插件添加 cordova-plugin-add-swift-support
      4. ionic cordova 平台添加 ios

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题,然后将 Cordova 升级到 7.1.0 为我工作

        【讨论】:

          【解决方案7】:

          从我做的离子项目(bash):

          grep -r 'platform_metadata' .
          

          发现我有一个名为cordova-plugin-swift-support 的插件是罪魁祸首。我删除了它,然后又添加了cordova-plugin-add-swift-support,一切都在cordova 8.0.0上运行良好

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-28
            • 1970-01-01
            • 1970-01-01
            • 2020-12-07
            • 2017-08-22
            相关资源
            最近更新 更多