Как остановить (периодически) сбой контейнера контейнера webpack-dev-server с ошибкой «Неожиданный токен« экспорт »» - PullRequest
0 голосов
/ 03 февраля 2020

Привет, у меня есть контейнер узла, который я использую для разработки с веб-пакетом.

Я запускаю контейнер с docker -compose -

  ui: 
    build:
      context: ./
    ports:
      - "80:80"
    volumes:
      - ./:/usr/src/app
      - /usr/src/app/node_modules

Недавно команда webpack-dev-server начал терпеть неудачу. со следующим выводом -

export function read(buffer, offset, isLE, mLen, nBytes) {
^^^^^^

SyntaxError: Unexpected token 'export'
    at wrapSafe (internal/modules/cjs/loader.js:1067:16)
    at Module._compile (internal/modules/cjs/loader.js:1115:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1040:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (/usr/src/app/node_modules/@webassemblyjs/ieee754/lib/index.js:12:13)
    at Module._compile (internal/modules/cjs/loader.js:1151:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bookbookui@1.0.0 start: `webpack-dev-server --config ./webpack.dev.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the bookbookui@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-02-03T09_23_23_558Z-debug.log

Я изо всех сил пытаюсь понять, что происходит. Если я go в контейнере, удалить package-lock.json, удалить содержимое /node_modules, а затем переустановить все пакеты из файла package.json, тогда все это снова начнет работать.

Проблема в следующем, когда я запускаю контейнер, он сталкивается с той же ошибкой и должен повторить процесс.

Что происходит? Ничто в этой трассировке стека ничего не значит для меня (или в файле журнала, на который он ссылается). Как это исправить?

ОБНОВЛЕНИЕ

Я попытался обновить базовый образ и запустить снова. Я все еще получаю странные результаты.

Мой docker файл выглядит так -

FROM node:13.8-buster

ENV NODE_ENV=development
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN mkdir -p /usr/src/app/node_modules
RUN npm install

CMD ["npm", "run", "start"] 

Но когда я запускаю контейнер, я снова получаю

container_1  | Child mini-css-extract-plugin node_modules/css-loader/dist/cjs.js!node_modules/sass-loader/dist/cjs.js!src/js/util/logos/gbi-tick-shield.scss:
container_1  |     Entrypoint mini-css-extract-plugin = *
container_1  |     [./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/js/util/logos/gbi-tick-shield.scss] 1.21 KiB {mini-css-extract-plugin} [built] [failed] [1 error]
container_1  |     
container_1  |     ERROR in ./src/js/util/logos/gbi-tick-shield.scss (./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!./src/js/util/logos/gbi-tick-shield.scss)
container_1  |     Module build failed (from ./node_modules/css-loader/dist/cjs.js):
container_1  |     Error: Cannot find module 'css-selector-tokenizer'
container_1  |         at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
container_1  |         at Function.Module._load (internal/modules/cjs/loader.js:507:25)
container_1  |         at Module.require (internal/modules/cjs/loader.js:637:17)
container_1  |         at require (internal/modules/cjs/helpers.js:22:18)
container_1  |         at Object.<anonymous> (/usr/src/app/node_modules/postcss-modules-scope/src/index.js:4:19)
container_1  |         at Module._compile (internal/modules/cjs/loader.js:689:30)
container_1  |         at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
container_1  |         at Module.load (internal/modules/cjs/loader.js:599:32)
container_1  |         at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
container_1  |         at Function.Module._load (internal/modules/cjs/loader.js:530:3)
container_1  |         at Module.require (internal/modules/cjs/loader.js:637:17)
container_1  |         at require (internal/modules/cjs/helpers.js:22:18)
container_1  |         at Object.<anonymous> (/usr/src/app/node_modules/css-loader/dist/index.js:18:51)
container_1  |         at Module._compile (internal/modules/cjs/loader.js:689:30)
container_1  |         at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
container_1  |         at Module.load (internal/modules/cjs/loader.js:599:32)

, если я запускаю c в Контейнер и запустить -

rm -rf node_modules/* && npm install && npm run start

Затем сервер Dev работает снова, я могу редактировать код и просматривать сайт в браузере.

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