作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一系列插件没有在 npm 注册表中发布,并且由于各种原因,它们永远不会发布。这些以 GitHub 存储库的形式存在。
鉴于cordova 8(实际上从7.1.0开始)已经删除了nofetch
,我们如何在config.xml
(或package.json
)在用户进行 cordova 准备
时安装这些插件?
示例:这是在 package.json (以及 config.xml)中
<plugin name="org.devgeeks.Canvas2ImagePlugin" spec="https://github.com/devgeeks/Canvas2ImagePlugin.git">
当你做cordova准备
时
Discovered plugin "org.devgeeks.Canvas2ImagePlugin" in config.xml. Adding it to the project
Failed to restore plugin "org.devgeeks.Canvas2ImagePlugin" from config.xml. You might need to try adding it again. Error: Failed to fetch plugin https://github.com/devgeeks/Canvas2ImagePlugin via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
Failed to get absolute path to installed module
但是手动执行相同的操作效果很好:
cordova plugin add https://github.com/devgeeks/Canvas2ImagePlugin.git
Installing "org.devgeeks.Canvas2ImagePlugin" for android
Installing "org.devgeeks.Canvas2ImagePlugin" for ios
Adding org.devgeeks.Canvas2ImagePlugin to package.json
Saved plugin info for "org.devgeeks.Canvas2ImagePlugin" to config.xml
这个特定的插件没有 npm 注册表。对于任何其他没有 npm 注册表的插件也是如此。
最佳答案
(没有将此标记为答案,因为我做了与我想做的相反的事情)
我放弃了尝试这样做。使用不同的 ID 将我的更改发布到 npm 注册表要简单得多。我个人认为这是一个糟糕的机制 - 我认为 npm 注册表是一个“好的插件列表”,并且确实不应该充斥着不添加全局值的修改,但我没有找到任何选择。
所以我:
originalplugin-myid-fork
package.json
和config.xml
只需引用这些 id,因为它们现在位于 npm 注册表中(我希望它们保持同步)背景故事(了解背景和我尝试过的内容):
我的标准是让我的用户只需执行 npm install && bower install && cordova prepare
即可轻松安装我的软件。
npm install
会在 node_modules
中创建插件垫片其 id 与原始插件相同。 config.xml
和package.json
有一个spec="my fork url"
,无论出于何种原因,cordova prepare
会在 npm 注册表中查找该 id 并开始提示。 npm install
之后手动安装cordova plugin add https://mygit.git
会因同样的错误而失败。使此手动命令再次工作的唯一方法是从 node_modules
中删除该插件的定义。 。 --no-registry
选项 - 永远无法让它工作 - 一直提示缺少本地路径。关于 Cordova 8 : How do you add plugins that are not in npm registry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50749953/
我是一名优秀的程序员,十分优秀!