Angular приложение не может разрешить main.ts, polyfile.test и style. css - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь запустить приложение Angular в контейнере Docker.

Я сделал следующие шаги:

1) Установил npm (v.3.5.2) и узел (v. 12.15.0) и angular CLI (v. 9.0. 1) на моей машине

2) Создан angular проект на моей машине (ng new mean-app --skip-install)

3) Переместился внутри проекта и создал Dockefile со следующим содержимым:

From node:12.15.0-alpine

RUN mkdir -p /app
WORKDIR /app

COPY package.json /app/

RUN ["npm","install"]

COPY . /app

EXPOSE 4200/tcp

CMD ["npm", "start", "--", "--host", "0.0.0.0", "--poll", "500"]

4) Затем я построил образ контейнера (sudo docker built -t mean-app)

5) Затем я начал запускать контейнер (sudo docker run -it --rm -p 4200:4200 -v ${pwd}/src:/app/src mean-app)

Результат:

Сборка прошла успешно, контейнер запускается, однако я получаю следующее сообщение об ошибке:

ERROR in multi (webpack)-dev-server/client?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node ./src/main.ts
Module not found: Error: Can't resolve '/app/src/main.ts' in '/app'
ERROR in multi ./src/polyfills.ts
Module not found: Error: Can't resolve '/app/src/polyfills.ts' in '/app'
ERROR in multi ./src/styles.css
Module not found: Error: Can't resolve '/app/src/styles.css' in '/app'
ERROR in Must have a source file to refactor.

Не могу найти ни одного другого поста, где люди получают эти сообщения об ошибках ... Буду признателен за любую помощь очень сильно.

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Полная переустановка узловых модулей работала у меня.

npm ci

0 голосов
/ 09 февраля 2020

Я решил проблему mysel, пожалуйста, найдите мое решение ниже:

Я получил сообщения об ошибках, потому что папка src внутри контейнера оказалась пустой и, следовательно, main.ts, polyfills.ts и style . css не были доступны для компиляции внутри контейнера.

Причина этого заключается в том, что я запустил контейнер с помощью следующей команды: sudo docker run -it --rm -p 4200:4200 -v ${pwd}/src:/app/src mean-app

Несмотря на то, что я скопировал папку sr c (s. Dockerfile), я затем смонтировал папку в мою локальную систему, когда я запустил контейнер (команда s.). Проблема с командой заключается в том, что я использовал $ {pwd} вместо $ (pwd), что сделало монтирование недопустимым. Это приводит к пустой папке src и, следовательно, к неудачной компиляции.

...