Pau*_*ega 57 npm cordova-plugins
我们有一个Angular + Ionic + Cordova项目,有多个开发人员,我们想管理cordova插件依赖项.我们正在使用Cordova CLI 5+,并且在手动运行安装命令(例如cordova plugin add cordova-plugin-camera)时,会cordovaPlugins在package.json文件的部分添加一个新行.这是成品的样子:
"cordovaPlugins": [
"cordova-plugin-camera",
"cordova-plugin-console",
"cordova-plugin-contacts",
"cordova-plugin-device",
"cordova-plugin-dialogs",
"cordova-plugin-file",
"cordova-plugin-geolocation",
"cordova-plugin-media",
"cordova-plugin-media-capture",
"cordova-plugin-network-information",
"cordova-plugin-splashscreen",
"cordova-plugin-statusbar",
"cordova-plugin-vibration",
"com.ionic.keyboard"
]
Run Code Online (Sandbox Code Playgroud)
这一切都很棒,除了我们找不到任何方式让dev#2到npm安装这些插件 - 相反,他必须单独运行命令,然后添加一个重复的行package.json,弄脏存储库.我们确信必须有一个命令来安装这些,但找不到它.任何人都能解释一下吗?
Pau*_*ega 89
是什么导致了我们的问题
我们最初使用这个Ionic + Cordova + Grunt种子项目来生成我们的初始应用程序.该项目包括许多Cordova钩子,其中包括在运行相应命令时添加和删除相关cordovaPlatforms和cordovaPlugins部分中的平台和插件package.json(即cordova plugin add cordova-plugin-media添加一行cordovaPlugins).
为了更好地支持本地测试(例如尝试新版本的插件),并防止交叉开发人员依赖性问题,我们禁用了种子项目挂钩,现在package.json根据需要手工制作.
正确管理Cordova插件
事实上,Ionic CLI用于package.json管理平台和插件方面的Cordova应用程序状态(从版本1.3.19开始,它出现).
填充package.json两个部分,cordovaPlatforms并cordovaPlugins允许我们做一个简单的方法ionic state restore来获得Cordova环境的形状,以进行仿真,构建等.
指定版本
为了进一步锁定我们的应用程序的状态和开发环境,我们还通过添加版本号指定了我们正在使用的Cordova平台和插件的目标版本.这是我们使用的:
{
...
"cordovaPlatforms": [
"android@4.0.2",
"ios@3.8.0"
],
"cordovaPlugins": [
"cordova-plugin-camera@1.1.0",
"cordova-plugin-contacts@1.1.0",
"cordova-plugin-device@1.0.1",
"cordova-plugin-file@2.1.0",
"cordova-plugin-media@1.0.1",
"cordova-plugin-media-capture@1.0.1",
"cordova-plugin-network-information@1.0.1",
"cordova-plugin-splashscreen@2.1.0",
"cordova-plugin-statusbar@1.0.1",
"cordova-plugin-vibration@1.2.0",
"com.ionic.keyboard@1.0.5"
]
}
Run Code Online (Sandbox Code Playgroud)
TL;博士
完成上述操作之后package.json,您可以通过ionic state restore(v1.3.19 +)确保您的本地环境处于正确状态,这将package.json根据需要咀嚼并安装平台和插件.
aWe*_*per 12
您可以添加postinstall命令.往下看
{
"cordovaPlugins": [
"com.ionic.keyboard@1.0.4",
],
"cordovaPlatforms": [
"android@4.1.1",
],
"scripts": {
"postinstall": "ionic state restore",
"clean": "ionic platform remove android; ionic platform remove ios; ionic platform remove browser; git checkout package.json"
}
}
Run Code Online (Sandbox Code Playgroud)
奖励:如果您希望开始清洁,请使用,npm run clean然后npm install重新安装所有平台
| 归档时间: |
|
| 查看次数: |
29784 次 |
| 最近记录: |