将参数添加到Cordova-CLI Hook脚本?

时间:2014-01-28 22:24:26

标签: cordova hook cordova-3

有没有办法将命令参数传递给Cordova-CLI挂钩脚本?具体来说,我想为一些客户端设置应用程序,我希望在构建之前通过传入id号或其他内容来复制其特定设置。

3 个答案:

答案 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。