DevOps找不到APPSETTINGS.JSON文件-但项目按预期方式部署和运行

时间:2019-12-18 18:54:00

标签: reactjs asp.net-core azure-devops appsettings npm-scripts

我们在ASP .NET Core Web应用程序中嵌入了一个React应用程序-我相信使用react.js模板来创建项目。

clientapp文件夹中,我们维护一个appsettings.json文件来保存API的网址。

enter image description here enter image description here

我们使用Git进行版本控制,Azure DevOps容纳了存储库。已实施CD / CI,并建立了用于构建和部署/发布到部署槽的管道。

部署后,该应用程序在DEV部署插槽中运行良好-react应用可以正确读取API URL-DEV API URL当前已硬编码在appsettings.json文件中。

我们正在寻求使用转换来管理文件appsettings.json中API URL的状态。但是,一旦部署,DevOps将找不到文件appsettings.json,因此它们将无法应用转换。

开发人员几乎无法访问PipeLine,这使得很难确定Build Pipeline中的步骤或过程是否操纵appsettings.json文件。此外,我们知道没有使用webpack。

我们无权访问Azure门户控制台-我们找不到该文件。

在构建管道的发布部分,我看到以下内容:react-scripts --max_old_space_size=4096 build

并在其下面显示以下输出:

  Creating an optimized production build...
  Compiled successfully.

  File sizes after gzip:

    1.47 MB    build\static\js\2.ef7d60da.chunk.js
    268.58 KB  build\static\css\2.24993e46.chunk.css
    19.18 KB   build\static\js\main.878c95b4.chunk.js
    5.63 KB    build\static\css\main.0044b53f.chunk.css
    775 B      build\static\js\runtime~main.ff579d2d.js

我怀疑appsettings.json文件正在存储到一个JS文件中,但我不确定。

如果文件正在迁移到上述文件之一,我们如何从优化过程中排除appsettings.json

如果优化过程不是appsettings.json消失的原因,我还能在哪里找出为什么它没有作为离散文件进行部署/发布?

1 个答案:

答案 0 :(得分:0)

我在计算机上运行了npm run --max_old_space_size=4096 build命令,发现创建了一组类似的文件: enter image description here

我发现appsettings.json元素嵌入其中之一: enter image description here

我还从上图中看到,是的,我们正在使用某种形式的WEBPACK,这为我解释了为什么appsettings.json未部署为离散文件。

知道如何从Build Optimization流程中排除appsettings.json或知道是否甚至有可能对我来说仍然很有价值。