Skip to content

Duplicate Identifier Errors #707

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
JimLynchCodes opened this issue Dec 1, 2016 · 11 comments
Closed

Duplicate Identifier Errors #707

JimLynchCodes opened this issue Dec 1, 2016 · 11 comments

Comments

@JimLynchCodes
Copy link

Version info

Angular:
angular-cli: 1.0.0-beta.20-4
node: 6.7.0
os: darwin x64
angular library: 2.1.0

Firebase:
3.6.2

AngularFire:
2.0.0-beta.6
Other (e.g. Ionic/Cordova, Node, browser, operating system):

How to reproduce these conditions

run this project, (npm i and ng serve):
https://github.com/JimTheMan/Jims-Ngrx-Example

Failing test unit, Plunkr, or JSFiddle demonstrating the problem

Steps to set up and reproduce
Errors appear in console every time I run ng serve

Sample data and security rules

<-- include/attach/link to some json sample data (or provide credentials to a sanitized, test Firebase project) -->

Debug output

** NG Live Development Server is running on http://localhost:4200. **
14188ms building modules 5ms add03710ms 372ms asse101ms emittinggHash: 5c5a5b6ec8a2600c7776
Version: webpack 2.1.0-beta.25
Time: 19610ms
Asset Size Chunks Chunk Names
main.bundle.js 3.74 MB 0, 2 [emitted] main
styles.bundle.js 10.3 kB 1, 2 [emitted] styles
inline.bundle.js 5.53 kB 2 [emitted] inline
main.map 4.09 MB 0, 2 [emitted] main
styles.map 14.2 kB 1, 2 [emitted] styles
inline.map 5.6 kB 2 [emitted] inline
index.html 484 bytes [emitted]
Child html-webpack-plugin for "index.html":
Asset Size Chunks Chunk Names
index.html 2.81 kB 0
webpack: bundle is now VALID.
[default] Checking started in a separate process...
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:12:9
Duplicate identifier 'Promise'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:17:9
Duplicate identifier 'Promise_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:130:9
Duplicate identifier 'EmailAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:135:9
Duplicate identifier 'EmailAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:144:9
Duplicate identifier 'FacebookAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:148:9
Duplicate identifier 'FacebookAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:153:9
Duplicate identifier 'GithubAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:157:9
Duplicate identifier 'GithubAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:162:9
Duplicate identifier 'GoogleAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:167:9
Duplicate identifier 'GoogleAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:172:9
Duplicate identifier 'TwitterAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:177:9
Duplicate identifier 'TwitterAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:181:8
Duplicate identifier 'UserCredential'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:339:8
Duplicate identifier 'StringFormat'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:340:7
Duplicate identifier 'StringFormat'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:347:8
Duplicate identifier 'TaskEvent'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:348:7
Duplicate identifier 'TaskEvent'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:352:8
Duplicate identifier 'TaskState'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:353:7
Duplicate identifier 'TaskState'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase/firebase.d.ts:390:3
Duplicate identifier 'export='.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:12:9
Duplicate identifier 'Promise'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:17:9
Duplicate identifier 'Promise_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:132:9
Duplicate identifier 'EmailAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:137:9
Duplicate identifier 'EmailAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:146:9
Duplicate identifier 'FacebookAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:150:9
Duplicate identifier 'FacebookAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:156:9
Duplicate identifier 'GithubAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:160:9
Duplicate identifier 'GithubAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:166:9
Duplicate identifier 'GoogleAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:171:9
Duplicate identifier 'GoogleAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:177:9
Duplicate identifier 'TwitterAuthProvider'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:182:9
Duplicate identifier 'TwitterAuthProvider_Instance'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:187:8
Duplicate identifier 'UserCredential'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:358:8
Duplicate identifier 'StringFormat'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:359:7
Duplicate identifier 'StringFormat'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:366:8
Duplicate identifier 'TaskEvent'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:367:7
Duplicate identifier 'TaskEvent'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:371:8
Duplicate identifier 'TaskState'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:372:7
Duplicate identifier 'TaskState'.
[default] /Users/jim/git2/Jims-Ngrx-Example/jims-ngrx-eg/node_modules/firebase/firebase.d.ts:409:3
Duplicate identifier 'export='.
[default] Checking finished with 40 errors

** Errors in the JavaScript console **

** Output from firebase.database().enableLogging(true); **

** Screenshots **

Expected behavior

clean run of ng serve with no errors.

Actual behavior

@cartant
Copy link
Contributor

cartant commented Dec 2, 2016

You have two firebase modules installed:

  • .../jims-ngrx-eg/node_modules/angularfire2/node_modules/firebase
  • .../jims-ngrx-eg/node_modules/firebase

Delete the first one so that AngularFire2 uses the firebase module that you have specified in your package.json as a peer (see #681).

@zakdances
Copy link

Why is node_modules/angularfire2/node_modules being installed?

@chrste90
Copy link

chrste90 commented Dec 2, 2016

Another solution is to install firebase 3.3.0, the version of angularfire.

@cartant
Copy link
Contributor

cartant commented Dec 2, 2016

@zakdances It's installed there because AngularFire2 has it as a dependency, rather than a peer dependency. It really should be the latter. You've specified a different version of Firebase, so you end up with two installations in the node_modules hierarchy, etc.

This wouldn't be a problem if the versions were the same. My understanding is that AngularFire2 is not using the latest version of Firebase, as there are problems with SystemJS (but I could have that wrong).

@JimLynchCodes
Copy link
Author

Hi. Thanks for answering guys. I'll try this. The thing is that I had firebase 3.X installed already because I was doing most of my calls with that, but then i wanted to move to ngrx/store and wanted the observables from AngularFire2. I suspect other people will come across this as well. I'm sure there is some solution where we don't have to delete a node_modules folder. :)

@thegrid22593
Copy link

thegrid22593 commented Dec 4, 2016

Hi All,

There shouldn't be a node_modules folder inside of angularfire2. Firebase is set as a dependency inside of the angularfire2 package.json and should be installed at your root node_modules folder.

With that said...

If you go into the firebase directory in your node_modules folder you will see an app.d.ts and a firebase.d.ts. Both of these files contain the same definitions which cause the duplicate error. Delete firebase.d.ts and all the errors will resolve.

This worked for me. Hopefully this will help someone else.

@danielehrhardt
Copy link

danielehrhardt commented Dec 12, 2016

Many People have a Problem with this can you please fix it?

thanks @thegrid22593 delete the firebase.d.ts fixed my problem.

Thanks,
Daniel

@davideast
Copy link
Collaborator

This should be fixed with #681. The fix is published under the next tag (npm i angularfire2@next). After a few more issues are addressed we'll do a release.

@rosslavery
Copy link
Contributor

rosslavery commented Dec 28, 2016

Correct me if I'm wrong, but despite the PR title, #681 doesn't actually set it as a peer dependency, it just updates the version tag, but keeps firebase listed inside the dependencies section.

This results in firebase still being installed inside the angularfire2 node_modules directory.

@davideast
Copy link
Collaborator

@rosslavery The package is re-written in during a release to set dependencies to peerDependencies, the issue is that they are still being left as dependencies. I've made the change to delete them as dependencies on a release.

@tbrownio
Copy link

I ran into this issue because i ran firebase init when I already had angularfire2 included in my app. I solved the issue by deleting node modules, then re-installing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants