Andrew Crites created CB-13463:
----------------------------------

             Summary: No way to prevent package.json update with cordova 
commands even with --nosave
                 Key: CB-13463
                 URL: https://issues.apache.org/jira/browse/CB-13463
             Project: Apache Cordova
          Issue Type: Bug
          Components: cordova-cli
    Affects Versions: [email protected]
            Reporter: Andrew Crites


With Cordova 7, cordova commands including {{cordova platform add}} and 
{{cordova prepare}} will copy plugin information from {{config.xml}} to 
{{package.json}}. 

According to [the saving platforms 
documentation|https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/],
 using {{--nosave}} should prevent updating {{package.json}} or {{config.xml}}, 
but this does not work (i.e. using {{--nosave}} still seems to update the 
{{package.json}}.

I want to avoid updating {{package.json}} specifically because there doesn't 
seem to be a way to avoid hard coding variables for plugins. An example is the 
cordova fabric plugin:

{code}
  <plugin name="cordova-fabric-plugin" spec="^1.1.9">
    <variable name="FABRIC_API_KEY" value="a" />
    <variable name="FABRIC_API_SECRET" value="b" />
  </plugin>
{code}

Cordova doesn't seem to provide a way for you to parameterize variables in the 
configuration. To get around this, I have {{build.config.xml}} where they are 
parameterized, and {{config.xml}} is created at install-time and not version 
controlled. However, this would be much more difficult to do with 
{{package.json}} and is practically not an option.

When running {{cordova platform add ios --nosave}} with the above plugin, 
cordova still updates {{package.json}} to include the fabric plugin with the 
hard coded variables.

* Cordova 6 question (with solution): 
https://stackoverflow.com/questions/37816035/using-environment-variables-parameterizing-config-xml
* Cordova 7 question (no solution yet) 
https://stackoverflow.com/questions/46816928/parameterize-do-not-hard-code-variables-when-building-with-cordova-7

Ideally {{--nosave}} would not update {{package.json}} as advertised. Even 
better, there should be a way to set up a cordova project so that any cordova 
commands do not save by default. This would prevent mistakes in a larger team 
and allow use of tools that wrap cordova such as ionic.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to