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 版本