javascript - Angular CLI og Angular Universal får ikke environment.production til å være true på serveren med --prod


Jeg satte opp webappen min ved bruk av Universal Starter - her og prøver å bruke environment.production for å bytte mellom en produksjonskonfigurasjon og en utviklingskonfigurasjon inne i ./src/config/server.config.ts, men verdien er alltid false. Når jeg sjekker verdien inne i en late loadet rute, er verdien korrekt. Hva skal jeg gjøre for å få den til å være korrekt på serversiden?

all hjelp blir satt pris på. takk

Svar #1

Jeg tror du vil ha noe med hvordan du konfigurerer webpack og oppretter miljøet ditt i npm-skript. Du kan sette miljøet basert på webpack-konfigurasjonen din. Ved å bruke webpack-merge kan du ha flere konfigurasjonspakker, og ved å sette opp hver enkelt med verdiene du har definert, kan du bytte frem og tilbake med webpack-merge i npm-skriptene dine. Se linken nedenfor.

https://webpack.js.org/guides/production/

Svar #2

Jeg tror grunnen er at i webpack.server.config.js er modus satt til 'none', ikke å gjøre det gir en feil når man bygger ssr, så miljøet er ikke satt til 'production'.

Løsningen jeg implementerer for nå er å sette en ny konfigurasjon med fileReplacements i serverbygget (angular.json):

      "server": {
      "builder": "@angular-devkit/build-angular:server",
      "options": {
        "outputPath": "dist/server",
        "main": "src/main.server.ts",
        "tsConfig": "src/tsconfig.server.json"
      },
      "configurations": {
        "mynewconfig": {
          "fileReplacements": [
            {
              "replace": "src/environments/environment.ts",
              "with": "src/environments/environment.prod.ts"
            }
          ]
      }

Deretter legger jeg til den konfigurasjonen i package.json når jeg bygger ssr:

    "build:client-and-server-bundles": "ng build --prod && ng run my-app:server --configuration=mynewconfig",

Dette er for Angular > 6, for tidligere versjoner kan du bruke --env-flagget i stedet for --configuration.

Relaterte artikler