ошибка TS2687: все объявления "наблюдаемые" должны иметь одинаковые модификаторы
У меня есть проект Angualr 6, и я пытаюсь запустить следующую команду npm run build
. Как появляется следующее сообщение об ошибке.
ERROR in node_modules/rxjs/internal/symbol/observable.d.ts(4,9): error TS2687: All declarations of 'observable' must have identical modifiers.
node_modules/@types/node/index.d.ts(167,14): error TS2687: All declarations of 'observable' must have identical modifiers.
Угловая версия
Angular CLI: 6.0.0
Node: 9.8.0
OS: darwin x64
Angular: 6.0.0
... animations, cdk, cli, common, compiler, compiler-cli, core
... forms, http, language-service, material, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.6.0
@angular-devkit/build-angular 0.6.0
@angular-devkit/build-optimizer 0.6.0
@angular-devkit/core 0.6.0
@angular-devkit/schematics 0.6.0 (cli-only)
@angular/flex-layout 6.0.0-beta.15
@ngtools/webpack 6.0.0
@schematics/angular 0.6.0 (cli-only)
@schematics/update 0.6.0
rxjs 6.1.0
typescript 2.7.2
webpack 4.6.0
Забытое упоминание происходит только в моем докере.
docker build -t $IMG --build-arg env=production .
# Stage 0 - Pre-requisite: Based On Node.js to BUILD and compile Demo Angular App.
FROM node:8.11.2 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/
ARG env
RUN npm run build -- --configuration $env
# Stage 1 - Based On Nginx to have ONLY a compiled and PRODUCTION ready build.
FROM nginx:1.14
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf
Ответы
Ответ 1
Была такая же проблема после обновления @types/node до 10.3.0. После понижения до версии 10.1.4 все снова работает. Я думаю, что rxjs должен быть обновлен для работы с новейшей версией @types/node. Поэтому на данный момент используйте более старую версию:
npm install @types/[email protected]
UPDATE: исправление на RxJS уже выполнено → https://github.com/ReactiveX/rxjs/pull/3773. Теперь им просто нужно объединить изменения и опубликовать новую версию.