«Обещание» не распознается во вновь установленном пакете npm

Я пытаюсь установить этот пакет npm. Как сказано в инструкции, я должен сделать

npm install angular2-websocket

что дает мне это:

[email protected] /home/me/dir
├─┬ [email protected] 
│ └── [email protected] 
├── UNMET PEER DEPENDENCY reflect-metadata@^0.1.8
├── UNMET PEER DEPENDENCY [email protected]
├── UNMET PEER DEPENDENCY [email protected]
└── UNMET PEER DEPENDENCY [email protected]

Как я выяснил, эти одноранговые зависимости должны быть установлены вручную, но о них нет упоминания в файле README. Я оставил как есть.

Затем идет раздел использования перед разделом компиляции, поэтому я не знаю, что мне делать. Но я все равно скомпилировал, и у меня не было ошибок. Я просто сделал, как написано в README:

npm run typings
npm run compile

Однако, когда я пытаюсь скомпилировать тестовый файл, который просто импортирует библиотеку angular2-websocket, я получаю:

node_modules/angular2-websocket/angular2-websocket.d.ts(36,30): error TS2304: Cannot find name 'Promise'.
../../node_modules/rxjs/Observable.d.ts(69,60): error TS2304: Cannot find name 'Promise'.
../../node_modules/rxjs/Observable.d.ts(69,70): error TS2304: Cannot find name 'Promise'.

Если промисы доступны даже в браузерах, то почему имя не найдено? Кроме того, почему пакеты для этой библиотеки указаны как одноранговые?


person Community    schedule 09.02.2017    source источник
comment
возможный дубликат. Возможно, ваш файл typescript.json имеет цель es5, когда он должен быть es6. Синтаксис обещания не был частью ES5, поэтому это могло вызвать ошибку.   -  person the holla    schedule 09.02.2017
comment
@DianaHolland, но его нужно запускать в браузерах, он угловатый   -  person    schedule 10.02.2017
comment
Я мало что знаю об Angular, но я работаю в Node, и мне кажется, что это ваша проблема: установленный вами пакет npm использует синтаксис Promise, но ваш проект не настроен в ES6. вы можете использовать ES6, а затем использовать что-то вроде Babel, чтобы преобразовать код ES6 в ES5 для браузеров. Вот пример настройки проекта Angular 2 ES6. Другой вариант — использовать другой пакет, не требующий синтаксиса обещания.   -  person the holla    schedule 10.02.2017