Привет, у меня есть контейнер узла, который я использую для разработки с веб-пакетом.
Я запускаю контейнер с 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 работает снова, я могу редактировать код и просматривать сайт в браузере.