Почему исходный код машинописи отсутствует в dist? - PullRequest
0 голосов
/ 03 декабря 2018

Компилятор Angular CLI создает исходные карты (файлы .map), которые позволяют отлаживать исходный машинописный код в инструментах разработчика Chrome.Я уже использую эту функцию при локальной разработке с JIT-компилятором / ng serve.

Однако, когда я создаю предварительную версию для своего веб-сервера с помощью AOT-компилятора / ng build, я не могуотладьте код, хотя все файлы карт можно найти в каталоге dist.Причина в том, что ng buid не экспортировал файлы исходного кода .ts в папку dist.

Для чего нужны карты исходного кода, если исходный код отсутствует?

Как я могу добиться, чтобы соответствующий исходный код (.ts) экспортировался в dist на ng build?Есть ли параметр или параметр cli для angular.json?

EDIT

Теперь я понимаю назначение карт-источников без исходных файлов (см. Комментарии) -намерение состоит в том, чтобы отладить исходный код в вашей локальной файловой системе.Для этого Chrome позволяет добавлять сопоставления в локальные файлы.Однако я все еще ищу способ предоставить исходный код моего приложения по нескольким причинам:

  • У меня очень плохой опыт использования функции добавления папки в рабочую область Chrome.Иногда файлы не распознаются, точки останова игнорируются, происходит сбой Chrome.

  • Можно предложить использовать отладчик IDE для решения этих проблем.Однако я до сих пор не нашел способа настроить WebStorm для отладки файлов машинописного текста при подключении (!) Отладчика Chrome.Отладка машинописного текста работает с WebStorm с конфигурациями Node.js или JavaScript-Debug, но не с конфигурацией отладки «Attach Node.js / Chrome».Я отлаживаю приложение, работающее на мобильном устройстве, поэтому мне нужно использовать эту опцию отладки.

  • Другие разработчики должны иметь возможность отлаживать приложение, даже если они работают в другой ветке / кодеbase.

Когда я писал этот вопрос, я думал, что что-то настроено неправильно.Теперь, когда я понимаю намерения исходных карт Angular, я спрашиваю вас, есть ли обходной путь для предоставления исходных файлов.Например, angular.json позволяет указывать правила активов, но мне не удалось использовать их для этой цели.

1 Ответ

0 голосов
/ 03 декабря 2018

Вам необходимо создать новую среду, добавить настройки для этой среды и выполнить сборку с использованием этой конфигурации.См. Пример:

Создание нового файла среды environment.dev.ts:

export const environment = {
  production: false,
  baseUrl: 'http://192.168.1.11',
  port: ':2992',
  api: 'api',
  debug: true,
  type: 'dev'
};

Добавьте параметры сборки среды в angular.json в разделе конфигураций.Обратите внимание на логическое значение «sourceMap»:

"dev": {
  "fileReplacements": [{
     "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.dev.ts"
   }],
   "optimization": true,
   "outputHashing": "all",
   "sourceMap": true,
   "extractCss": true,
   "namedChunks": false,
   "aot": true,
   "extractLicenses": true,
   "vendorChunk": false,
   "buildOptimizer": true
}

, затем выполните сборку с этой средой

ionic cordova build android -c dev
...