vue pwa в докере - не удается найти модуль 'chalk' - PullRequest
0 голосов
/ 30 мая 2018

это мой первый вопрос по stackoverflow.Спасибо всем за этот абсолютно фантастический форум!

Я пытаюсь запустить vue pwa в Docker.Я использовал vue-cli для настройки приложения pwa.Установка и запуск local не проблема.

Затем я попытался докеризировать проект.Я попытался использовать следующий код докера:

# Start with a Node.js image.
FROM node:10

# Make directory to install npm packages
RUN mkdir /install

ADD ["./code/package.json", "/install"]
WORKDIR /install

RUN npm install --verbose

ENV NODE_PATH=/install

# Copy all our files into the image.
RUN mkdir /code
WORKDIR /code
COPY . /code/

EXPOSE 8080
CMD npm run dev

Проблема в том, что при запуске композиции я получаю сообщение об ошибке:

web_1        | internal/modules/cjs/loader.js:573
web_1        |     throw err;
web_1        |     ^
web_1        | 
web_1        | Error: Cannot find module 'chalk'
...

Я пробовал разные способы в течение нескольких дней.Но я не вижу никакого решения.Я что-то пропустил?Есть ли несовместимость?

Я также пытался полностью перейти на пряжу , но эффект тот же.Так что я не думаю, что есть проблема с установкой пакетов.Может ли быть проблема с переменной Node_Path?

Спасибо за вашу поддержку заранее!

1 Ответ

0 голосов
/ 17 августа 2018

Столкнувшись с той же проблемой,

Обычно вы не устанавливаете devDependencies для производства, поэтому, когда NODE_ENV = production, NPM / Yarn не будет устанавливать devDependencies.

Для случая использования докера,когда мы строим статический сайт в константе Docker, нам может понадобиться использовать NODE_ENV = production, чтобы заменить некоторые переменные PRODUCTION, поэтому нам нужно будет использовать NODE_ENV = production, но также установить зависимости dev.

Некоторые изрешение

1 - переместить все из devDependencies в зависимости

2 - не устанавливать NODE_ENV = production в yarn install ||npm install, установите его только после установки модуля

3 - для YARN, NODE_ENV=production yarn install --production=false, должен быть эквивалент NPM

4 - (не тестировался), другое имя IE NODE_ENV=prodвместо создания полного имени, но вам, возможно, придется поиграться с другими конфигами, использующими NODE_ENV=production

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...