jos*_*las 7 npm cordova cordova-plugins
我们正在同一组织下开发几个NPM软件包:
@aerogearservices/core
@aerogearservices/core-rn
@aerogearservices/core-cordova
Run Code Online (Sandbox Code Playgroud)
core-cordova通过依赖关系安装的Cordova插件在哪里(有关范围包的更多信息,请阅读)。
相关文件:
应用程序的package.json
{
...
"dependencies": {
"@aerogearservices/core-cordova": "1.0.0",
...
},
"cordova": {
"plugins": {},
"platforms": ["ios", "android"]
}
}
Run Code Online (Sandbox Code Playgroud)
插件的package.json
{
"name": "@aerogearservices/core-cordova",
"version": "1.0.0",
...
"cordova": {
"id": "aerogearservices-core-cordova",
"platforms": [
"android"
]
},
"dependencies": {
"@aerogearservices/core": "1.0.0"
},
"engines": {
"cordovaDependencies": {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
插件的plugin.xml
... ... Apache 2.0
<platform name="android">
<config-file target="res/xml/config.xml" parent="/*">
...
</config-file>
<source-file
...
/>
</platform>
Run Code Online (Sandbox Code Playgroud)
该插件还没有执行任何操作,我只是尝试将其安装在我的应用程序中,但是在运行时出现cordova platform add android此错误:
UnhandledPromiseRejectionWarning: CordovaError: Cannot find plugin.xml for plugin "@aerogearservices". Please try adding it again.
Run Code Online (Sandbox Code Playgroud)
问题在于,Cordova将插件安装在下面,myApp/plugins/aerogearservices/core-cordova因此它正在寻找plugin.xml错误的位置。
作用域包和cordova插件如何一起工作?是否有任何解决方法而不重命名插件?
小智 5
这可能不是您问题的解决方案,但我最终在创建一个发布在作用域 npm 注册表中的cordova 插件时遇到了问题,这就是我设法修复它的方法:
插件的 config.xml 不应提及范围:
<plugin id="cordova-plugin-myplugin" ...>
<name>cordova-plugin-myplugin</name>
Run Code Online (Sandbox Code Playgroud)
另一方面,插件的 package.json 应该提到它:
"name": "@scope/cordova-plugin-myplugin",
"cordova": {
"id": "@scope/cordova-plugin-myplugin",
"platforms": [
"android",
"windows",
"ios"
]
},
Run Code Online (Sandbox Code Playgroud)
现在,我使用没有问题
科尔多瓦插件添加@scope/cordova-plugin-myplugin
我希望这实际上可以帮助某人
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |