1

I'm using the Angular2 Cli as the runtime environment for my Angular 2 application. I'm really impressed with its architecture, best of class development tools, and overall well-thought-out-ness (for lack of a better word).

However, about every fifth save (build) my server generates the error message:

Error: Trying to add a new entry to an already existing one:

I then have to kill the process and restart it to get around the problem.

Here is the full text:

file changed app/vtClass.ts
The Broccoli Plugin: [BroccoliTypeScriptCompiler] failed with:
Error: Trying to add a new entry to an already existing one: /home/vturner/vtstuff/angular/projects/ang2-cli2/tmp/broccoli_type_script_compiler-input_base_path-sdRX1KMo.tmp/0/src/app/ang2-cli2.spec.ts
    at BroccoliTypeScriptCompiler._addNewFileEntry (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:212:13)
    at /home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:159:38
    at Array.forEach (native)
    at BroccoliTypeScriptCompiler._doFullBuild (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:159:16)
    at BroccoliTypeScriptCompiler._doIncrementalBuild (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:116:12)
    at BroccoliTypeScriptCompiler.build (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:45:12)
    at /home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/broccoli-caching-writer/index.js:152:21
    at lib$rsvp$$internal$$tryCatch (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/rsvp/dist/rsvp.js:1048:17)
    at lib$rsvp$$internal$$publish (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/rsvp/dist/rsvp.js:1019:11)

The broccoli plugin was instantiated at: 
    at BroccoliTypeScriptCompiler.Plugin (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/broccoli-plugin/index.js:10:31)
    at BroccoliTypeScriptCompiler.CachingWriter [as constructor] (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/broccoli-caching-writer/index.js:21:10)
    at BroccoliTypeScriptCompiler (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/broccoli-typescript.js:25:35)
    at Angular2App.toTree (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/lib/broccoli/angular2-app.js:67:16)
    at module.exports (/home/vturner/vtstuff/angular/projects/ang2-cli2/angular-cli-build.js:11:14)
    at Class.module.exports.Task.extend.setupBroccoliBuilder (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:55:19)
    at Class.module.exports.Task.extend.init (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:89:10)
    at new Class (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/core-object/core-object.js:18:12)
    at Class.module.exports.Task.extend.run (/home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/node_modules/angular-cli/lib/tasks/serve.js:15:19)
    at /home/vturner/vtstuff/angular/projects/ang2-cli2/node_modules/angular-cli/node_modules/angular-cli/lib/commands/serve.js:70:22

I only seem to get the problem when there's a coding error, but that's not to say there's a 1-1 correspondence between coding errors and this message -- most coding errors I generate do not generate this message.

Once I get the error, the server seems to go into a blocked state where no matter what I do, including fixing the coding problem, will make the problem go away. It only goes away when I cycle the server.
It's getting really tedious to have to keep checking for this condition and cycling the server, which takes about 6s, to fix this.

I can post my code, but I don't see any rhyme or reason between the code and getting this message, so I don't think this will help i.e. I think it's an environmental issue and not a coding issue. I've tried deleting the tmp directory listed in the error message but this didn't work.

I start my server like so:

vturner@vturner-virtual-machine ~/vtstuff/angular/projects/ang2-cli2 $ 
sudo ng serve 
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://www.ember-cli.com/user-guide/#watchman for more info.
Livereload server on http://localhost:49152
Serving on http://localhost:4200/

Build successful - 8049ms.

Slowest Trees                                 | Total               
----------------------------------------------+---------------------
BroccoliTypeScriptCompiler                    | 7643ms              

Slowest Trees (cumulative)                    | Total (avg)         
----------------------------------------------+---------------------
BroccoliTypeScriptCompiler (1)                | 7643ms              

file changed app/vtClass.ts

Build successful - 1072ms.

Note: I've been running the server as sudo, because I was either having permissions problems or I read somewhere that it runs faster as sudo (this last one may only be true on windows), but I don't think running as sudo is related to my problem.

Here is my package.json:

{
  "name": "ang2-cli2",
  "version": "0.0.0",
  "license": "MIT",
  "angular-cli": {},
  "scripts": {
    "start": "ng server",
    "postinstall": "typings install --ambient",
    "lint": "tslint src/**/*.ts",
    "format": "clang-format -i -style=file --glob=src/**/*.ts",
    "pree2e": "webdriver-manager update",
    "e2e": "protractor"
  },
  "private": true,
  "dependencies": {
    "angular2": "2.0.0-beta.11",
    "es6-shim": "^0.35.0",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.20",
    "three": "^0.75.0",
    "zone.js": "^0.6.4"
  },
  "devDependencies": {
    "angular-cli": "0.0.*",
    "angular-cli-github-pages": "^0.2.0",
    "clang-format": "^1.0.35",
    "codelyzer": "0.0.12",
    "ember-cli-inject-live-reload": "^1.4.0",
    "jasmine-core": "^2.3.4",
    "jasmine-spec-reporter": "^2.4.0",
    "karma": "^0.13.15",
    "karma-chrome-launcher": "^0.2.1",
    "karma-jasmine": "^0.3.6",
    "protractor": "^3.0.0",
    "ts-node": "^0.5.5",
    "tslint": "^3.6.0",
    "typescript": "^1.8.7",
    "typings": "^0.6.6"
  }
}

Can anyone tell me what I'm doing wrong, or what I can do to prevent this?

Many Thanks.

vt5491
  • 2,254
  • 2
  • 22
  • 34
  • I commented out the error line in node_modules/angular-cli/lib/broccoli/broccili-typescript.js: `_addNewFileEntry(entry) { const p = path.join(this.inputPaths[0], entry.relativePath); if (this._fileRegistry[p]) { //vt add console.log("vt.broccoli-typescript.js: intercepting dupicate entry error"); //vt end //vtthrow new Error('Trying to add a new entry to an already existing one: ' + p); }` but now I get `Error: EEXIST: file already exists` I think this is probably a libray issue. see https://github.com/ember-cli/ember-cli/issues/3413 – vt5491 Apr 07 '16 at 04:16
  • I'm having the exact same issue with the Angular 2 CLI. Super tedious to have to kill and restart the server every time. Have you submitted this as an issue on the CLI's Github? – sharpmachine Apr 07 '16 at 19:06
  • I found a similar [open issue](https://github.com/angular/angular-cli/issues/403) on the angular-cli repo. I added a "me too" comment, along with my details. The person who opened the ticket noted that the situation occurs only when you **fix** a previously flagged bug. I was able to verify that that this _is_ the mechanism that generates the condition for me as well. – vt5491 Apr 08 '16 at 04:17
  • I posted a workaround (minor source code changes) in the [ticket](https://github.com/angular/angular-cli/issues/403). Just a temporary fix until the developers can come up with an actual fix. – vt5491 Apr 08 '16 at 07:35

1 Answers1

4

If you are a windows user , please run your terminal in administrative mode. I was facing the same problem , it worked for me :)

pd farhad
  • 6,352
  • 2
  • 28
  • 47