借助PhoneGap 2.x
,我可以快速开发应用,方法是在change
上从我的服务器下载新资源,而不是每次都重新部署到设备
我可以包含cordova.js
并将其与其他资产一起发送,效果很好。
我的实际PhoneGap应用只是一个包含 window.location = "my/dev/server"
的shell,直到我需要分发它们,此时我会在本地打包资产。
我似乎无法使用 3.x
执行此操作。 :(
我可以查看所需的cordova.js
,但“需要”一堆其他资源。也许是一些充满咕噜声的过程?
这些资产(cordova.js +需要树)究竟是如何打包的?如何将它们捆绑到一个文件中以便在开发环境中远程服务? <- an answer to these questions gets the bounty
答案 0 :(得分:5)
我不确定为什么它在3.x上不起作用,但绝对可以重新构建JS文件并提供服务。
这些资产(cordova.js +需要树)究竟是如何打包的?
在它们打包在一起之前,它们都是在不同的模块(普通,exec,util,特定于平台的实现等)中布局,然后有一个将所有内容打包在一起的grunt脚本。
如何将它们捆绑到一个文件中以便在开发环境中远程服务?
如果你想要的是获得新版本的cordova.js,你应该能够通过下载JS源代码并自己运行grunt脚本来自己压缩所有内容。
来源可在此处获得: https://github.com/apache/cordova-js
您需要安装node.js,npm和grunt,但如果不安装,请参阅自述文件。
下载源代码,然后运行
grunt
在根目录中,您应该在'pkg'目录中找到'cordova.ios.js',以及其他平台的相同文件。这应该是你正在寻找的'cordova.js'。
我认为这应该可以帮助你,但如果没有,请随意提问。
答案 1 :(得分:0)
我不知道这对你有帮助,但这是我对cordova 3.X的理解:
所以我认为如果你导入cordova.js,cordova_plugins.js和plugins文件夹它可能会有效。
答案 2 :(得分:0)
对于任何仍然感兴趣的人,我创建了一个脚本,用于将Cordova 3.X所需的所有cordova文件打包,包括一个文件中的插件,您可以从服务器端提供这些文件。 仅在cordove 3.4中进行测试。
它支持缩小和添加以及md5签名。
答案 3 :(得分:0)
查看Cordova Loader,它会编译资产并为其提供服务:https://github.com/andrewreedy/cordova-loader
答案 4 :(得分:0)
最后,我设法将cordova.js 包括插件打包到一个平台JS文件中并使其工作。现在可以通过从2.9.1替换原始cordova.js(并升级本机部分)从2.9升级到3.x,4.x。希望这能解决问题。我很困惑为什么cordova没有提供这个,而是依赖于动态包含这些文件。
希望这很有用,并且可以节省其他人花费2天的时间。
#!/bin/bash
echo rm -r CordovaPseudoProject
rm -r CordovaPseudoProject
cordova create CordovaPseudoProject com.pseudo.CordovaPseudoProject CordovaPseudoProject
cd CordovaPseudoProject/
cordova platform add ios
cordova plugin add org.apache.cordova.device
cordova plugin add org.apache.cordova.device-motion
cordova plugin add org.apache.cordova.device-orientation
cordova plugin add org.apache.cordova.geolocation
cordova plugin add org.apache.cordova.camera
cordova plugin add org.apache.cordova.dialogs
cordova plugin add org.apache.cordova.vibration
cordova plugin add org.apache.cordova.console
cordova prepare
# concat all plugin files into a single file
IFS=$'\n' # make newlines the only separator
cd platforms/ios/www
## extract plugin files
grep '"file":' cordova_plugins.js | sed 's/.* "//g' | sed 's/",//g' > tmp_junk_tmpq
cat cordova_plugins.js > cat_plugins.js
for j in `cat tmp_junk_tmpq` ; do
echo "cat $j >>cat_plugins.js"
cat $j >> cat_plugins.js
done
rm tmp_junk_tmpq
# overwrite cordova_plugins.js with concatenated version
#echo cp cat_plugins.js cordova_plugins.js
#cp cat_plugins.js cordova_plugins.js
echo cat cordova.js cat_plugins.js to cordova_platform_complete.js
cat cordova.js cat_plugins.js > cordova_platform_complete.js
cd $CUR_WD
echo "CREATED CordovaPseudoProject/platforms/ios/www/cordova_platform_complete.js"