Cordova 无法添加插件:错误:找不到模块“unorm”

Posted

技术标签:

【中文标题】Cordova 无法添加插件:错误:找不到模块“unorm”【英文标题】:Cordova can't add plugin: Error: Cannot find module 'unorm' 【发布时间】:2018-03-27 21:24:43 【问题描述】:

我正在尝试向我的 cordova 应用程序添加插件,但我收到一条错误消息,提示“平台“ios”似乎不是有效的 cordova 平台。它缺少 API.js。不支持 ios。”

node --version
v9.2.0

cordova --version
8.0.0

这是我正在运行的命令

cordova plugin add cordova-plugin-appinfo

以及完整的输出:

Installing "cordova-plugin-appinfo" for ios
Unable to load PlatformApi from platform. Error: Cannot find module 'unorm'
Failed to install 'cordova-plugin-appinfo': Error [ERR_UNHANDLED_ERROR]: Unhandled error. (The platform "ios" does not appear to be a valid cordova platform. It is missing API.js. ios not supported.)
    at EventEmitter.emit (events.js:140:19)
    at EventEmitter.module.exports.emit (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-common/src/events.js:71:17)
    at Object.getPlatformApiFunction (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/util.js:499:20)
    at Object.getPlatformApi (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/src/platforms/platforms.js:55:25)
    at handleInstall (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:593:29)
    at /Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:357:28
    at _fulfilled (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:749:13)
    at /Users/james/.nvm/versions/node/v9.2.0/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/q/q.js:509:49
(node:35697) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Unhandled error. (The platform "ios" does not appear to be a valid cordova platform. It is missing API.js. ios not supported.)
(node:35697) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

我确定这是一个有效的 Cordova 项目,并且 iOS 平台似乎运行良好(我可以在 iPhone 上构建和运行)。

【问题讨论】:

插件文件夹检入仓库时出现此问题。删除平台并再次添加它解决了这个问题。 (我们从 git GIT 存储库中删除了该文件夹,并再次将这些文件夹添加到 .gitignore 中,但我们每次都必须添加和删除平台.. 仍然不知道为什么) 【参考方案1】:

我在尝试更新 ios 平台后遇到了同样的错误。 事实证明 node_modules 下载缓存中有一些损坏。 我可以通过第二次尝试来解决这个问题:

cordova platform rm ios 
cordova platform add ios@latest

【讨论】:

【参考方案2】:

我刚遇到这个,当前接受的答案(删除然后添加 ios 平台)对我不起作用。相反,问题似乎出在 nodejs 版本上。从节点 16 降级到节点 12 使其工作。从this answer 得到这个。我使用nvm,所以对我来说很简单:

nvm install 12 --lts
nvm use 12

【讨论】:

以上是关于Cordova 无法添加插件:错误:找不到模块“unorm”的主要内容,如果未能解决你的问题,请参考以下文章

Cordova/Phonegap / iOS:错误:找不到插件“Plugin01”,或者不是 CDVP 插件。检查 config.xml 中的插件映射

Ionic 4 本机插件地理定位给了我“找不到模块:错误:无法解析 'rxjs/Observable'”

ionic 3 - 错误在 Android Studio 中也找不到安装的 Gradle 版本

Cordova 插件:无法检索图片的路径

无法在 cordova 2.4 中创建 phonegap ios 插件

错误:找不到 -Info.plist 文件或 config.xml 文件