Firebase部署,忽略除公用文件夹之外的所有文件

时间:2016-10-08 19:00:33

标签: firebase firebase-hosting firebase-tools

我正在尝试将部署过程清理到Firebase,并且在将文件部署到主机时需要忽略除c aka公用文件夹之外的所有文件。我相信可以通过Q中的/dist设置来完成,但除了手动指定所有文件之外,我不确定如何实现它。

示例ignore

firebase.json

3 个答案:

答案 0 :(得分:5)

使用glob **ignore any file or folder in an arbitrary sub-directory

然后,您可以使用dist

取消忽略!dist文件夹

所以你的firebase.json文件看起来像是:

{
    "database": {
        "rules": "database.rules.json"
        },
        "hosting": {
            "public": "dist",
            "ignore": [
                "**",
                "!dist/**"
            ],
            "rewrites": [{
                "source": "**",
                "destination": "/index.html"
            }
        ]
    }
}

对于较新版本的Firebase:

似乎新版本的firebase不允许使用上述方法,因此只需定义应忽略的文件夹:

{
    "database": {
        "rules": "database.rules.json"
        },
        "hosting": {
            "public": "dist",
            "ignore": [
                "**/node_modules/**",
                "**/src/**",
                "**/public/**"
            ],
            "rewrites": [{
                "source": "**",
                "destination": "/index.html"
            }
        ]
    }
}

您可以使用Firebase控制台检查已部署的文件数量:

  1. 打开Firebase项目的托管页面,记下文件数量。Firebase Hosting dashboard
  2. 运行命令$ tree dist/(因为在这种情况下dist/是我们在Firebase托管服务的文件夹),并记下build文件夹中的文件数。 tree for build folder
  3. 这些文件应大致相同。

答案 1 :(得分:0)

ignore属性指定部署时要忽略的文件。它可以采用 glob 模式,就像 Git 处理.gitignore一样。

以下是要忽略的文件的默认值:

"hosting": {
  // ...

  "ignore": [
    "firebase.json",  // the Firebase configuration file (this file)
    "**/.*",  // files with a leading period should be hidden from the system
    "**/node_modules/**",  // contains dependencies used to create your site but not run it

    "**/someOtherFolder/**"  // this is will exclude the folder with the name entered
    "**someOtherFile**" // this will exclude that particular file
  ]
}

答案 2 :(得分:0)

!(pattern)匹配与提供的任何模式都不匹配的任何内容。

*仅匹配公共目录根目录中的文件和文件夹

{
  "hosting": {
    "public": "dist",
    "ignore": ["**, !*"],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}