Skip to content

Broccoli MergeError .DS_Store exists in /tmp/... folders #1439

@hmbilal

Description

@hmbilal
  1. Mac OSX (El Capitan Version 10.11.6)
  2. angular-cli: 1.0.0-beta.10
    node: 4.4.5
    os: darwin x64
  3. Everything was working fine until I slept and ran the code again in the morning.
The Broccoli Plugin: [BroccoliMergeTrees] failed with:
Error: Merge error: file .DS_Store exists in /private/var/www/tekeera/src/app/tmp/broccoli_merge_trees-input_base_path-biHJB8Sz.tmp/0 and /private/var/www/tekeera/src/app/tmp/broccoli_merge_trees-input_base_path-biHJB8Sz.tmp/1
Pass option { overwrite: true } to mergeTrees in order to have the latter file win.
    at BroccoliMergeTrees._mergeRelativePath (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/broccoli-merge-trees/index.js:266:17)
    at BroccoliMergeTrees.build (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/broccoli-merge-trees/index.js:70:24)
    at /private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/broccoli-plugin/read_compat.js:61:34
    at lib$rsvp$$internal$$tryCatch (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1048:17)
    at lib$rsvp$$internal$$publish (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1019:11)
    at lib$rsvp$asap$$flush (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1198:9)
    at nextTickCallbackWith0Args (node.js:420:9)
    at process._tickCallback (node.js:349:13)

The broccoli plugin was instantiated at: 
    at BroccoliMergeTrees.Plugin (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/broccoli-plugin/index.js:10:31)
    at new BroccoliMergeTrees (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/broccoli-merge-trees/index.js:30:10)
    at Angular2App._buildTree (/private/var/www/tekeera/src/app/node_modules/angular-cli/lib/broccoli/angular2-app.js:170:14)
    at new Angular2App (/private/var/www/tekeera/src/app/node_modules/angular-cli/lib/broccoli/angular2-app.js:53:23)
    at module.exports (/private/var/www/tekeera/src/app/angular-cli-build.js:11:10)
    at Class.module.exports.Task.extend.setupBroccoliBuilder (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:55:19)
    at Class.module.exports.Task.extend.init (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/angular-cli/lib/models/builder.js:89:10)
    at new Class (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/core-object/core-object.js:18:12)
    at Class.module.exports.Task.extend.run (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/angular-cli/lib/tasks/serve.js:15:19)
    at /private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/angular-cli/lib/commands/serve.js:64:24
    at lib$rsvp$$internal$$tryCatch (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1036:16)
    at lib$rsvp$$internal$$invokeCallback (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1048:17)
    at /private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:331:11
    at lib$rsvp$asap$$flush (/private/var/www/tekeera/src/app/node_modules/angular-cli/node_modules/rsvp/dist/rsvp.js:1198:9)
    at nextTickCallbackWith0Args (node.js:420:9)
    at process._tickCallback (node.js:349:13)
  1. I have tried to remove tmp folder many times, did ng init and overwrite all config files but still the same issue.

Then finally I found out that at one place we missed {overwrite: true} option when merging nodes.

Line 170 in angular-cli/lib/broccoli/angular2-app.js

merged = new BroccoliMergeTrees([merged, publicFolder]);

changed to

merged = new BroccoliMergeTrees([merged, publicFolder], {overwrite: true});

and everything is working fine now.

I'll be creating a PR for this. But let me know if I am missing anything or if there is some other solution.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions