2016-08-24 2 views
7

Я пытаюсь создать приложение ng2 с угловым огнем. После быстрого запуска, я получаю следующее сообщение об ошибке:AngularFire2: Не удается найти пространство имен «firebase»

cannot find namespace 'firebase' 

, кажется, что-то с типизации, установили все из них, хотя. Любые идеи по этому вопросу?

ответ

1

Он работает, как описано в the issue.

tsconfig.json:

"types": [ "jasmine", "firebase" ]

Не могу поверить, что это так легко исправить.

+0

Это не сработало для меня, хотя ... Какую версию машинописного текста вы используете? –

+0

Версия 2.1.0-dev.20160826 – sandrooco

+0

да же для меня версия - как насчет 'tsc -v' какая версия сообщает? –

1

Кажется, что об ошибке уже сообщалось и (надеюсь) работая над этим. Проверьте это здесь:

https://github.com/angular/angularfire2/issues/461

Некоторые люди имели успех, изменяющее typings.json (удаление dependcy к firebase) или установка версии @next в машинописи. Лично я застрял с той же ошибкой в ​​настоящее время.

Я надеюсь, что ошибка будет исправлена ​​в конце концов (в ближайшее время;))

EDIT: Кажется, что «ошибка» была комбинация нескольких зависимостей, которые должны были быть только право. В итоге у меня была переменная PATH, указывающая на старую установку tsc под номером Program Files. По какой-то причине это использовалось вместо (предпочтительного) из пакета узла typescript.

+0

Хорошо, что отстой ... Слишком плохо, что нет 100% исправления. Большое спасибо за ваши расследования и помощь вчера! – sandrooco

+0

Смотрите мой новый ответ haha ​​... – sandrooco

6

Если у вас есть свежий угловую 2.0 CLI проект - это будет работать - я не знаю вашу конкретную установку:

  1. убедитесь, что ваш tsconfig.json выглядит следующим образом:

«compilerOptions «: {

"declaration": false, 
"emitDecoratorMetadata": true, 
"experimentalDecorators": true, 
"lib": ["es6", "dom"], 
"mapRoot": "./", 
"module": "es6", 
"moduleResolution": "node", 
"outDir": "../dist/out-tsc", 
"sourceMap": true, 
"target": "es5", 
"typeRoots": [ 
"../node_modules/@types" /// - here - types are pointing to this @types folder inside node_modules. 
] 

}

  1. создать новую папку внутри @types под названием firebase.
  2. создать новый файл внутри firebase, назовите его index.d.ts
  3. разместим форму here контента внутри index.d.ts
  4. here официальные документы настройки angularfire2. Раздел «Устранение неполадок» не является точным - для проекта с угловым кли. Обязательно не размещайте никаких объявлений или вещей внутри tsconfig.json или typings.json, как указано там (на данный момент 28 сентября 2016 года).

Похоже, рекомендуемый способ добавить печатая, чтобы угловой 2.0 CLI проекта - это добавить их в node_modules/@ папка типа .. Как вы можете видеть папку жасмина Typing выглядит аналогично - и была автоматически добавлена ​​там с помощью строительных лесов CLI.

+1

Life saver! Сделайте, как говорит мужчина, если другие решения не работают. Я провел много часов в течение нескольких дней, ударяя об этой ошибке, и много ресурсов, рассказывающих мне об этом Это не сработало (по состоянию на 10/02/2016) – Methodician

1

попробуйте добавить эту строку под импорт

declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file

т.е.

import { AngularFireModule } from 'angularfire2';

declare let firebase: any; // <== THERE IS AN ERROR IN THE .d.ts file

вы это делаете, когда вы добавляете ваниль JS к машинопись, его в основном говорил typescript, что переменная «firebase» существует, даже если вы не см. его прямо сейчас, и он должен надеяться удалить ошибку, если это даёт мне знать.

+0

Не совсем уверен, что это люди, которые хотят сделать ... – sandrooco

0

Решение:

1.Inside package.json, remove^from "firebase": "^4.8.1" 

1.1 Downgrade Firebase from 4.8.1 to 4.8.0 by changing 4.8.1 to 4.8.0 

1.2 End result should look like this: "firebase": "4.8.0" 

2. Run npm update in the Project Root. NPM will downgrade Firebase for ya 

3. Run ng serve --open to check for compilation errors. There shouldn't be any. 

Причина:

Firebase были введены некоторые важные изменения, которые AngularFire2 не справились с еще. Пока команда AngularFire2 не будет работать, это будет решением.

Добавить превью emoji и направить всех, у кого есть такая же проблема! Сэкономит много времени!

+0

Вы забыли добавить ссылку [к исходному комментарию] (https://github.com/angular/angularfire2/issues/1387#issuecomment-353778579).И у нас на самом деле нет emojis :) –

+0

https://github.com/angular/angularfire2/issues/1387#issuecomment-353778579 –

+0

Вы можете отредактировать свой ответ (ищите кнопку «редактировать» под текстом) –

Смежные вопросы