有没有办法将命令参数传递给Cordova-CLI挂钩脚本?具体来说,我想为一些客户端设置应用程序,我希望在构建之前通过传入id号或其他内容来复制其特定设置。
答案 0 :(得分:5)
您可以通过环境变量访问传递给cordova钩子的参数。您可以设置一个对当前会话保持“活动”的环境变量。
例如,如果我们有一个名为'TARGET'的变量:
Windows cmd:
SET TARGET=someValue
cordova build android
Powershell的:
$env:TARGET = "someValue"
iex "cordova build android"
然后,您可以使用以下语法在钩子中访问这些环境变量(假设您正在使用node.js编写钩子):
var target = "someDefaultValue";
// Check for existence of the environment variable
if (process.env.TARGET) {
// Log the value to the console
console.log('process.env.TARGET is set to: ' + process.env.TARGET);
// Override the default
target = process.env.TARGET;
}
// Log the set value
console.log('Target is set to: ' + target);
答案 1 :(得分:1)
看看使用cordova命令并传递你自己的一组命令EG:cordova运行android -e env_value
在您的钩子中,您可以使用CORDOVA_CMDLINE
查找传递的-e命令在下面的bash脚本中,我能够遍历传递的命令中的每个单词
#!/bin/sh
(
command=${CORDOVA_CMDLINE}
for word in $command
do
if [ "$flag" = "true" ]
then
echo "Flag is true Word printed is: '$word'"
fi
if [ "$word" = "-e" ]
then
echo $flag
flag="true"
else
echo $word
flag="false"
fi
done
以上例子的回声:cordova运行ios -e“prod”
cordova
run
android
-e
Flag is true word printed is: prod
答案 2 :(得分:0)
是的,您可以通过查看CORDOVA_CMDLINE
环境变量来查看传递给Cordova的完整命令行。您应该看到它设置为这样:
node /usr/local/bin/cordova build ios your_extra_parameters_can_go_here
似乎Cordova忽略了它无法识别的任何参数(避免用破折号启动自己的参数),因此您可以在platform参数之后添加自己的自定义值。
请记住,此功能最近才添加(版本3.3.0)。因此,如果没有为您设置该变量,请尝试升级您的Cordova。