Проблем със средата в Angular при опит за изграждане

Когато се опитвам да създам Angular проект, имам този проблем:

Файлът '/angular/src/environments/environment.ts' не е модул

Импортирам файла така:

import { environment } from '../../environments/environment';

My tsconfig.json :

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

В моята папка за среда имам файлове: environment.ts, environment.prod.ts, environment.dev.ts.

Използвам NODE_VERSION=10, NG_CLI_VERSION=8

Моят angular.json, build.configurations за dev:

"dev": {
          "optimization": true,
          "outputHashing": "all",
          "sourceMap": false,
          "extractCss": true,
          "namedChunks": false,
          "aot": true,
          "extractLicenses": true,
          "vendorChunk": false,
          "buildOptimizer": true,
          "serviceWorker": true
        }

Команда за изграждане: "build": "ng build --configuration=dev --aot",

Моля, помогни ми. Благодаря предварително !


person klsdskldsd    schedule 05.05.2020    source източник
comment
Каква команда използвате за компилиране на кода? Също така, мислихте ли за надграждане до Angular 9 или 10?   -  person Akxe    schedule 05.05.2020
comment
командата: ng build --configuration=dev --aot. Засега не мога да надстроя   -  person klsdskldsd    schedule 05.05.2020
comment
Тогава имаме нужда от angular.json   -  person Akxe    schedule 05.05.2020
comment
В един момент cli започна да изисква да включи всички кандидати за заместване на evnironment в tsconfig (или angular.json не може да си спомни), за да може да работи. Вече не е достатъчно просто да имате environment.xxx.ts в директорията env.   -  person Antoniossss    schedule 05.05.2020
comment
@Antoniossss Мога да потвърдя, че това не е така. Поне не за Angular 9...   -  person Akxe    schedule 05.05.2020
comment
Покажете ни съдържанието на вашите файлове за среда, environment.dev.ts вероятно никога не се споменава, не по подразбиране в конфигурацията на angular.   -  person Akxe    schedule 05.05.2020
comment
Съдържанието на environment.ts ?   -  person klsdskldsd    schedule 05.05.2020
comment
@Akxe Редактирах въпроса си с angular.json, компилацията на конфигурацията за dev   -  person klsdskldsd    schedule 05.05.2020
comment
опитайте абсолютен път import { environment } from 'src/environments/environment'; или import { environment } from 'environments/environment'; в зависимост от вашия baseHref   -  person Steve    schedule 05.05.2020


Отговори (1)


Angular по подразбиране конфигурира само производствената среда angular.json, за да замени файла environement.ts. Той използва тази част от angular.json.

"configurations": {
   "production":{
      "fileReplacements":[
         {
            "replace":"src/environments/environment.ts",
            "with":"src/environments/environment.prod.ts"
         }
      ],
      "rest": ...
   }
}

Не за разработчиците да използват environment.dev.ts, ще трябва да добавите и частта fileReplacements към разработчиците.

"fileReplacements":[
  {
    "replace":"src/environments/environment.ts",
    "with":"src/environments/environment.dev.ts"
  }
]

Или поставете вашата конфигурация за разработчици на тази, която не е пост-фиксирана.

person Akxe    schedule 05.05.2020