npm上传cordova插件

上一篇文章记录了如何自定义插件,而这样编写完的插件只能自己使用,想共享到Internet或者用到用到别项目就比较麻烦,这是我们需要把代码做成插件形式,然后发布到网上,现在cordova插件都转移到流行的npm上了,所以我们就可以通过npm发布cordova插件。

通过npm发布cordova插件其实是在发布普通npm插件基础上做了一些修改而已。所以可以先看看npm的官方教学视频,其实11、12两节基本说了整个过程,不过视频是个语速很快的外国妹子说的。。。

1、创建npm mudule

首先保证电脑里装了npm,讲道理,开发cordova肯定是有这个环境的。然后就是在命令行下,选择一个文件夹,名字为你之后插件的名字如:cordova-plugin-mjtest,然后就输入

npm init

然后会让你输入一系列信息,就像:
这里写图片描述

这些就是对于项目的基本描述,但是这个描述还缺少几个属性,我们在后面补全。

2、补全package.json

{
  "name": "cordova-plugin-mjtest",
  "version": "1.1.2",
  "description": "test cordova plugin",
  "cordova": {
    "id": "cordova-plugin-mjtest",
    "platforms": [
      "android",
      "ios"
    ]
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/MaxBalance/cordova-plugin-mjtest.git"
  },
  "keywords": [
    "ecosystem:cordova",
    "cordova",
    "mjtest",
    "cordova-ios",
    "cordova-android"
  ],
  "author": "maxbalance",
  "license": "Apache 2.0",
  "bugs": {
    "url": "https://github.com/MaxBalance/cordova-plugin-mjtest/issues"
  },
  "homepage": "https://github.com/MaxBalance/cordova-plugin-mjtest#readme"
}

这是我最后上传的package.json,里面有的cordova中,”id”: “cordova-plugin-mjtest”是定义插件的id,然后是你编写cordova插件的平台,我这里只有ios与android。同样的在keywords中也最好是按照这样的格式,以便被人可以搜索到,当然你可以增加更多的keywords。其他的属性就没有什么特别的。

3、制作cordova插件

上一篇中制作的插件,有些文件我们是可以直接使用的,比如java中的java文件,ios下的.h与.m文件和通信的js文件。
在刚才我们init的文件夹下,建立src与www文件夹,其中src下创建ios和android文件夹,把之前的java文件与.m和.h文件放入到对应文件夹下。

这里写图片描述

我这取名为mjtest.java,mjtest.h,mjtest.m。

接下来就是编写plugin.xml,这个是通信的关键。

<?xml version="1.0" encoding="UTF-8"?>

<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
    xmlns:rim="http://www.blackberry.com/ns/widgets"
    xmlns:android="http://schemas.android.com/apk/res/android"
    id="cordova-plugin-mjtest"
    version="1.1.2">
    <name>mjtest</name>
    <description>Cordova mjtest Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,mjtest,cordova-ios,cordova-android</keywords>
    <repo>https://github.com/MaxBalance/cordova-plugin-mjtest.git</repo>
    <issue>https://github.com/MaxBalance/cordova-plugin-mjtest/issues</issue>

    <js-module src="www/mjtest.js" name="mjtest">
        <clobbers target="window.plugins.mjtest" />
    </js-module>


    <!-- android -->
    <platform name="android">
        <config-file target="res/xml/config.xml" parent="/*">
            <feature name="Mjtest" >
                <param name="android-package" value="org.apache.cordova.mjtest.Mjtest"/>
            </feature>
        </config-file>

        <source-file src="src/android/Mjtest.java" target-dir="src/org/apache/cordova/mjtest" />
    </platform>

    <!-- ios -->
    <platform name="ios">
        <config-file target="config.xml" parent="/*">
            <feature name="Mjtest">
                <param name="ios-package" value="Mjtest"/>
            </feature>
        </config-file>

        <header-file src="src/ios/Mjtest.h" />
        <source-file src="src/ios/Mjtest.m" />
    </platform>

</plugin>

这个文件我是纯手动创建,如果有自动方法,求指导~

其中的配置关键是把文件名字和路径配置正确。有一处android下的target-dir是全路径,也就是最后下载你的插件后,文件所在的位置。

4、发布npm插件

到此我们的编码工作已经基本结束了,之后就是发布了。发布前需要修改package.json中的version,如果是1.0.0是不允许发布的,修改为更高版本即可。
然后在发布前还需要在npm官网注册你的账户,然后通过

npm adduser

来添加本地用户,需要用户名、密码与邮箱。

npm publish

在文件夹中加入license与readme等,使用这个命令去上传即可。

命令行出现,你的“项目名@版本号”,说明上传成功,过会去cordova plugin页面搜索即可。


祝大家成功~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值