Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 离子4自定义环境文件_Angular_Environment Variables_Ionic4 - Fatal编程技术网

Angular 离子4自定义环境文件

Angular 离子4自定义环境文件,angular,environment-variables,ionic4,Angular,Environment Variables,Ionic4,我正在与爱奥尼亚4项目合作。我有不同的环境(test、testB、prob、devecc..)。我已经在environment文件夹中创建了所有文件:environment.dev.ts、environment.testA.ts、environment.testB.ts等。在构建或服务(在浏览器上)项目时(可能类似于--env=testA-like?)有没有办法设置正确的环境?我唯一能找到的是--prod,它只适用于生产环境,但在本例中,我有两个以上的环境。您应该检查package.json文件

我正在与爱奥尼亚4项目合作。我有不同的环境(test、testB、prob、devecc..)。我已经在environment文件夹中创建了所有文件:environment.dev.ts、environment.testA.ts、environment.testB.ts等。在构建或服务(在浏览器上)项目时(可能类似于--env=testA-like?)有没有办法设置正确的环境?我唯一能找到的是--prod,它只适用于生产环境,但在本例中,我有两个以上的环境。

您应该检查package.json文件。
My package.json如下所示:

  "name": "name",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "test": "ng test",
   "lint": "ng lint",
   "e2e": "ng e2e",
   "build-prod": "ng build --prod --progress false",
   "build-dev": "ng build --env=dev --aot=true --output-hashing=all --sourcemaps=false --extract-css=true --named-chunks=false --build-optimizer=true --progress false",
   "build-preprod": "ng build --env=preprod --aot=true --output-hashing=all --sourcemaps=false --extract-css=true --named-chunks=false --build-optimizer=true --progress false",
   "build-dev2": "ng build --env=dev2 --aot=true --output-hashing=all --sourcemaps=false --extract-css=true --named-chunks=false --build-optimizer=true --progress false"
},
在angular-cli.json中有一个环境键:

"environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts",
    "preprod": "environments/environment.preprod.ts",
    "dev2": "environments/environment.dev2.ts"
  },
在Angular 8中,您应该检查Angular.json:

"configurations": {
        "production": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true,
          "budgets": [
            {
              "type": "initial",
              "maximumWarning": "2mb",
              "maximumError": "5mb"
            },
            {
              "type": "anyComponentStyle",
              "maximumWarning": "6kb",
              "maximumError": "10kb"
            }
          ]
        }, "preprod": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.preprod.ts"
            }
          ],
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true,
          "budgets": [
            {
              "type": "initial",
              "maximumWarning": "2mb",
              "maximumError": "5mb"
            },
            {
              "type": "anyComponentStyle",
              "maximumWarning": "6kb",
              "maximumError": "10kb"
            }
          ]
        }
      }
    },

经过一些测试,我决定了!离子4的溶液:

  • 使用文件夹src/environments中的环境变量创建所需的所有文件。示例environment.live.ts、environment.test1.ts、environment.test2.ts等
  • 更新根文件夹中的angular.js文件

      "configurations": {
           "production": { ... } // already there for production
           // Add for your custon environments files here
           "testA": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.testa.ts" //Name of your file
                }
              ]
           } ... // Do this for every environment on every build you need
      }
    
  • 在需要的项目中导入环境文件:

    从“../../environments/environment”导入{environment}

  • 要在构建或服务时选择不同的环境:离子服务---c=testA构建等的相同逻辑。。。这将自动将环境文件替换为正确的文件,在这种情况下,将替换为与testA环境相关的文件


  • 谢谢你的回答。这在Angular项目中运行良好,但在Ionic项目中不起作用,我在Angular项目中使用Ionic。我有一个带有Angular的Ionic应用程序,在根目录中有一个Angular.json,其中包含上面提到的再次编辑和回答的感谢。但是,在ionic 4中没有angular-cli.json文件。顺便说一句,我经过一些研究后决定。在Ionic 4中的逻辑类似,但有一些不同,我也在这里发布了我的解决方案以帮助其他人。是的,这是我提到的第二部分:在Angular 8中,您应该检查Angular.json。你犯了一个错误,angular.json(正如我所提到的)而不是angular.js。关于使用React的Ionic项目呢?