在 FireBase Deploy 之前混淆 JS

obfuscate JS before FireBase Deploy

我已经开始使用 Firebase 托管我在 js 中构建的应用程序。 我希望能够在将 java 脚本代码部署到 FireBase 之前混淆它。

我找不到使用 firebase 自动执行此操作的方法,所以我下载了闭包编译器,并开始编写一个 deploy.bat 批处理文件,它将....

  1. 将我的所有代码和资产从我的 public 文件夹复制到部署文件夹
  2. 混淆 JS
  3. 将站点部署到 Firebase。

但是现在我发现您不能为开发本地托管提供单独的文件夹,例如(public - 使用模拟器)和另一个文件夹,用于存放应该部署到 firebase 的内容。

谁能建议我如何解决这个问题?

您可以将文件夹拆分为“开发”和“生产”版本。但是,应注意确保您的测试通过生产版本和开发版本。

以下文件夹结构将允许通过调用 npm run build 然后从终端的 project/dev 文件夹中调用 npm run deploy 来部署混淆代码。

- /project
  - /prod
    - .firebaserc
    - firebase.json
    - /public
      - ... (obfuscated files)
  - /dev
    - .firebaserc
    - firebase.json
    - package.json
    - /public
      - ... (source files)

project/dev/firebase.json 中,合并到这里以获得 firebase deploy 如果从 project/dev 内部意外调用则故意崩溃:

"hosting": {
  "predeploy": "node -e \"process.exit(1)\""
}

project/dev/package.json 中合并,这样您的代码就 built/obfuscated 进入 project/prod 目录:

"scripts": {
  "build": "npm run build-hosting && ...",
  "build-hosting": "INSERT-TOOL-HERE --srcDir ./public --outDir ../prod/public",
  "deploy": "npm run deploy-hosting && ...",
  "deploy-hosting": "pushd ../prod && firebase deploy --only hosting && popd",
}