我已经在Cordova上成功创建并发布了一个应用程序 - 所以我对这个平台并不陌生,但它并没有没有打嗝和挫折。
使用Cordova 7,我们现在有config.xml和package.json,主要包含相同的信息。
如果我想更改,请说版本号或标题,我编辑哪一个,如何相应地更新其他文件?
我尝试的任何东西似乎都没有用,而且必须两次进行更改似乎相当多余?
答案 0 :(得分:11)
根据我在Cordova 7 Release Notes上可以阅读的内容,package.json
将始终在config.xml
运行cordova prepare
时创建package.json
,如果它不存在的话。如果确实存在config.xml
,则会优先考虑(但仅限于其中定义的内容,如插件和平台,其他配置选项config.xml
仍将使用)。
因此,在package.json
中保存设置可能是一种解决方案,并且在运行cordova prepare
之前始终删除phpcs --standard='Symfony' -a 'path' --report-file='~/Users/uname/Desktop/PHPcs'
,可能使用自定义npm脚本。
答案 1 :(得分:4)
作为对该问题的改进,Cordova 9.0.0似乎决定立即停止同步config.xml和package.json文件。因此,package.json是平台/插件信息的主要位置,对于具有Cordova经验的人来说,这似乎很奇怪。
我没有看到任何明显的宣布,但是在使用9.0.0时偶然发现了它,并在下面进行了确认:
更改包括:GH-750将保存平台/插件删除到config.xml
答案 2 :(得分:0)
对于版本号,您可以将其存储在package.json
中,并添加一个名为"version"
的npm脚本,该脚本将相应地更新config.xml
。然后,始终使用npm version
而不是手动更改版本号。
package.json
"scripts": {
...
"version": "./bin/update-config-version.sh",
...
},
update-config-version.sh
#!/bin/bash
CONFIG='config.xml'
NEW_VERSION=${npm_package_version}
if [ -e $CONFIG ]; then
# sed to replace version in config.xml
sed -i '' "s/\(widget.*version=\"\)\([0-9,.]*\)\"/\1$NEW_VERSION\"/" $CONFIG
git add $CONFIG
echo "Updated $CONFIG with version $NEW_VERSION"
else
echo 'Could not find config.xml'
exit 1
fi
还有an npm package。总有一个npm软件包。像这样使用:
npm install --save-dev cordova-set-version
package.json
"scripts": {
...
"version": "cordova-set-version --version ${npm_package_version} && git add config.xml",
...
},
它不能解决大部分重复问题,但是可以忍受一些。