【问题标题】:Cordova 5.0.0: Which files should I commit to git?Cordova 5.0.0:我应该将哪些文件提交给 git?
【发布时间】:2015-07-10 08:12:01
【问题描述】:

我使用 Cordova 5.0.0,我有以下项目结构:

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

我现在的问题是:我可以省略哪些文件夹?我问它是因为我在三个不同的平台上工作。我在 linux 上为 android 开发,windows 为 windows phone 和 mac 上为 ios 开发。如果我提交整个项目,我总是会收到不受支持的平台的警告和错误。

我想要的是一个简约的 git 存储库。

例如一个问题是插件。当我从存储库中删除插件文件夹时,我必须手动将它们添加到我的每个开发平台上。

另一个问题是资源文件夹。我使用 ionic 自动生成图标和闪屏。当我现在尝试在 ios 上构建项目时,它正在抱怨 android 的图像。

那么我需要什么,我可以省略什么?

【问题讨论】:

    标签: cordova gitignore


    【解决方案1】:

    2021 年更新 - 使用 Android 平台:

    # Node Package Manager
    node_modules/
    npm-debug.log
    
    # Gradle
    .gradle
    
    # IntelliJ IDEA
    **/.idea/**/*
    *.iml
    coverage/
    .nyc_output/
    
    # Other generated files & folders
    bin/*
    build
    gen
    
    # Cordova Plugins: remove all except json & xml
    plugins/*
    !plugins/**/*.json
    !plugins/**/*.xml
    
    # Cordova Platform: Android
    platforms/android/assets/www
    platforms/android/bin
    platforms/android/gen
    platforms/android/local.properties
    platforms/android/ant-build
    platforms/android/ant-gen
    platforms/android/CordovaLib
    platforms/android/cordova/
    platforms/android/app/gradle
    platforms/android/app/src/main/java
    platforms/android/app/release
    platforms/android/app/gradlew
    platforms/android/**/*.bat
    platforms/android/app/src/main/assets/www
    platforms/android/platform_www
    
    # Cordova www folder
    # Files will be built into this folder
    www/**/*
    !www/.gitkeep
    

    通过我的设置,我有一个构建脚本,它捆绑并缩小了 www 文件夹的内容,所以我也忽略了它。

    【讨论】:

      【解决方案2】:

      大多数其他答案都是 2/3 岁。

      2019 年更新:

      # remove extension less files
      *
      !/**/
      !*.*
      
      # intermediate files
      node_modules/
      build/
      obj/
      Debug/
      bin/
      package-lock.json
      .vs
      .gradle
      .idea
      *.exe
      
      # res
      **/resources/signing
      
      # project specific
      **/dist/
      **/all.min.js
      
      # ========== Cordova - platforms
      # android
      # platforms/android/app/src/main/assets
      # platforms/android/app/src/main/AndroidManifest.xml
      # platforms/android/app/src/main/res/drawable-*
      # platforms/android/app/src/main/res/mipmap-*
      # platforms/android/app/src/main/res/xml/config.xml
      # browser
      # platforms/browser/app/src/main/assets
      # platforms/browser/config.xml
      # platforms/browser/www
      #
      # ========== Cordova - plugins - remove all except json & xml
      # plugins/**/.DS_Store
      # plugins/**/*.cs
      # plugins/**/*.h
      # plugins/**/*.java
      # plugins/**/*.js
      # plugins/**/*.m
      # plugins/**/*.map
      # plugins/**/*.md
      # plugins/**/*.modulemap
      # plugins/**/*.ts
      # plugins/**/LICENSE
      # plugins/**/NOTICE
      # plugins/**/*.gradle
      # plugins/**/tests/
      

      如您所见,我注释了大部分行(所有行都以 # 开头)。 这是因为我遇到了插件版本更改的问题,并决定了解插件更新发生了什么。 基本上所有平台和插件文件都包含在提交中,现在我的生活很平静。

      2019:
      我用this 声明。

      在开发和发布应用程序后,它变成了以下内容:
      (如有偏差,请在下方评论,我们可以互相学习)

      # remove extension less files
      *
      !/**/
      !*.*
      
      # intermediate files
      node_modules/
      build/
      obj/
      Debug/
      bin/
      package-lock.json
      .vs
      .gradle
      .idea
      *.exe
      
      # Cordova - platforms
      platforms
      
      # Cordova - plugins - remove all except json & xml
      plugins/**/.DS_Store
      plugins/**/*.cs
      plugins/**/*.h
      plugins/**/*.java
      plugins/**/*.js
      plugins/**/*.m
      plugins/**/*.map
      plugins/**/*.md
      plugins/**/*.modulemap
      plugins/**/*.ts
      plugins/**/LICENSE
      plugins/**/NOTICE
      plugins/**/*.gradle
      plugins/**/tests/
      
      # res
      **/resources/signing
      
      # project specific
      **/dist/
      **/all.min.js
      

      【讨论】:

      • 你可以简单地做plugins/*然后!plugins/**/*.json!plugins/**/*.xml
      • 我也看到建议不要忽略包锁
      • @z-khullah 在提供的链接中,给出了“可选忽略插件 Git 克隆”,因为有时我们会更改其中的代码,因此不能忽略所有文件。理想情况下,我们可以忽略,但由于插件中的问题,有一些在线建议,尤其是作为 cordova 的新手,它会有所帮助。每次某些插件安装更改时,package-lock 都会更改 10 或 20 行,所以这也是我们不想进行代码审查的事情,同样通过 igor 锁定文件我们到目前为止没有任何问题,它是从 package.json 生成的。 json。希望这有助于提供我们的观点。
      • 是的,但是该模式做同样的事情,只是行数更少。至于包锁,它有助于调试,因为它显示了确切的 node_modules 结构,但是是的,我认为它是可选的
      【解决方案3】:

      我不知道答案,但我发现了一些可能有帮助的东西。这个pull requestapproved

      这是file

      # Mac
      .DS_Store
      
      # Node
      npm-debug.log
      /node_modules
      
      # Cordova
      /platforms
      /plugins
      
      # res
      resources/signing
      

      【讨论】:

      【解决方案4】:

      这取决于平台。

      你可以使用这个.gitignore的例子,根据你的需要自定义。

      # Mac
      .DS_Store
      
      # iOS
      platforms/ios/build/
      platforms/ios/www/
      platforms/ios/cordova/console.log
      *.xcuserdatad
      
      # android
      platforms/android/assets/www
      platforms/android/bin
      platforms/android/gen
      platforms/android/local.properties
      platforms/android/ant-build
      platforms/android/ant-gen
      platforms/android/CordovaLib/ant-build
      platforms/android/CordovaLib/ant-gen
      platforms/android/CordovaLib/bin
      platforms/android/CordovaLib/gen
      platforms/android/CordovaLib/local.properties
      
      # wp8
      platforms/wp8/bin
      platforms/wp8/obj
      platforms/wp8/www
      platforms/wp8/.staging
      platforms/wp8/*.suo
      platforms/wp8/*.csproj.user
      
      # res
      resources/signing
      

      【讨论】:

      • 忽略platforms/android/res难道不是很有意义吗? AFAIK/understnad,这些是在构建过程中创建的(来自父(项目)目录中的 res / resources 文件夹)。
      • 我可以使用 cordova 6.3.0 忽略 platforms/*/ 并在其他系统上执行 cordova prepare
      • 这个忽略文件似乎包含了很多生成的文件,所以我认为它需要更窄。
      • 应该也包括node_modules吗?我做到了。
      • @CameronA.Ellis 我也有node_modules。你加了吗?有没有办法下载这些节点模块。
      【解决方案5】:

      我按照以下步骤操作:

      • 创建科尔多瓦项目

      • 添加平台

      • 添加插件

      在构建项目之前,我提交并推送生成的文件。在我构建项目并检查生成的新文件之后。我将这些添加到 .gitignore 中:

      /platforms/android/gradlew.bat

      /platforms/android/build

      /platforms/android/gradle

      /platforms/android/libs

      /platforms/android/gradlew.bat

      /platforms/android/CordovaLib/build

      /platforms/android/.gradle

      【讨论】:

        【解决方案6】:

        之后您可以使用以下命令保存平台和插件。

        平台海量节约

        $ cordova platform save
        

        大量节省插件

        $ cordova plugin save
        

        请注意以上命令中没有 --

        还有一点,在另一台机器上获取 repo 后,您只需运行以下命令即可自动生成和获取插件和平台

        $ cordova prepare
        

        如需更多参考,请访问以下链接。 https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

        Cordova 提示:在获取正确解决方案之前,请务必先参考官方文档。

        【讨论】:

          【解决方案7】:

          我添加到 Niko 列表中:

          # IntelliJ IDEA files
          *.iml
          .idea
          
          #windows
          Thumbs.db
          Desktop.ini
          

          *.sw[mnpcod]
          *.log
          *.tmp
          *.tmp.*
          log.txt
          

          【讨论】:

          • 这些通常可以忽略,而不是特定于 Cordova(比如 .DS_Store 也不是 Niko 的答案)。
          • 这些可能应该在global gitignore 中解决,而不是项目级别的。
          【解决方案8】:

          只要您没有在其中添加任何自定义代码,您就可以忽略平台和插件目录。

          添加插件和平台时,将 --save 添加到命令中。例如

          cordova platform add ios@3.8.0 --save
          

          cordova plugin add cordova-plugin-device --save
          

          这会将您使用的插件和平台的记录保存到您的 config.xml 文件中。当您运行 cordova preparecordova build 时,您将安装 config.xml 中列出的所有插件和平台(如果尚未安装)。

          您还可以在准备和构建中指定平台。因此,如果您使用的是 Mac,您可以查看 git 存储库并运行 cordova prepare ios 以仅安装 ios 平台和插件。

          【讨论】:

          • 这也适用于现有的插件和平台。 Cordova 将忽略重新安装,但会将插件添加到配置文件中。
          • cordova build 没有恢复平台,但 cordova prepare 在 Cordova 6.0 上恢复了。
          • 如果您忘记--save平台和插件,只需使用cordova platform savecordova plugin save(注意不要--),它会将相关行添加到您的config.xml
          • 这适用于platforms,但不适用于pluginscordova prepare 至少不能与 plugin.xmlsrc 一起使用。我放弃了,只是将所有 plugins 保存到 git。
          • 从 cordova 7.0.0 开始,默认行为已更改为保存。 cordova.apache.org/news/2017/05/04/cordova-7.html
          猜你喜欢
          • 2019-01-18
          • 2011-02-10
          • 2018-01-05
          • 1970-01-01
          • 1970-01-01
          • 2020-11-24
          • 1970-01-01
          • 1970-01-01
          • 2018-11-20
          相关资源
          最近更新 更多