typescript - react-scripts docker üzerinden çalıştırıldığında derleme başarısız oluyor
Docker konteynerinden react-scripts build komutunu çalıştırdığımda derleme hataları alıyorum ama aynı komutu yerelde çalıştırdığımda hiçbir sorun olmuyor. Hatalar tamamen typescript ile ilgili gibi görünüyor ama bundan %100 emin değilim. Aldığım hatalar Syntax error: Unexpected token, expected "," şeklinde ve bu hataların olmaması gereken kodlarda ortaya çıkıyor. İşte bazı örnekler:
#16 63.56 > 11 | type Props<T extends string> = {
#16 63.56 | ^
#16 70.86 9 | export const ADDRESS_INIT_VALUE = {
#16 70.86 > 10 | country: (null as unknown) as Country,
#16 70.86 | ^
İşte kullandığım dockerfile:
syntax = docker/dockerfile:experimental
## BUILD image ##
FROM node:15.2.1-alpine3.12 AS builder
WORKDIR /web
Copy package files
COPY ./web/package.json ./
COPY ./web/yarn.lock ./
Install dependencies
RUN yarn install
Copy and build app
COPY ./web ./
RUN yarn build
## RUN Image ##
FROM httpd:alpine
Apache conf
COPY ./web/.docker/httpd.conf /usr/local/apache2/conf/httpd.conf
COPY --from=builder /web/build/ /usr/local/apache2/htdocs/
Şu ana kadar birden fazla node docker imajını denedim, hiçbir fark yaratmadı. Ayrıca docker imajıyla tamamen aynı sürümde node ve yarn kullandığımdan emin oldum. Ayrıca yerel olarak kullandığım node_modules ve yarn.lock dosyalarını sildim ve temiz bir kurulum ve derleme yaptım, bu da herhangi bir hata vermedi.
Docker'da bu tuhaf hataları neden verdiği konusunda herhangi bir öneri veya fikir çok takdir edilecektir.
Cevap #1
Anlaşılan Docker tarafından .eslintrc.json göz ardı edilmiş ve build sırasında varsayılan ayarlar eslint kurallarından hatalar alıyormuşum.
Çözüm, bu dockerfile'daki .dockerignore dosyasında tüm linter dosyalarını beyaz listeye ekledim.
*
!web/.docker
!web/public
!web/src
!web/package.json
!web/yarn.lock
!web/tsconfig.json
!web/.editorconfig
!web/.eslintrc.json
!web/.prettierrc
!web/.stylelintrc
Cevap #2
Kök dizindeki bazı yapılandırma dosyalarına bakın ve bunları kopya paketler bölümüne ekleyin.
