https://embercommunity.slack.com/archives/dev-ember-cli/p1481157690003118
input node includes files foo.js and foo.hbs
- using a broccoli-filter that takes .hbs -> .js
- 💥
This is because we unconditionally call symlinkOrCopySync from srcPath to destPath. But since we copy forward all files, the output path already includes foo.js when we attempt to symlink the output of transpiling foo.hbs. I think step one would be to setup a failing test in broccoli-filter with ^ as a minimal reproduction.
The solution likely either includes:
- tracking when we have already written to a given dest path and just call
fs.unlinkSync(destPath) before calling symlinkOrCopy.sync
- use
try/catch and auto-retry upon EEXIST error after unlinking
cc @rwjblue
https://embercommunity.slack.com/archives/dev-ember-cli/p1481157690003118
input node includes files
foo.jsandfoo.hbsThis is because we unconditionally call
symlinkOrCopySyncfromsrcPathtodestPath. But since we copy forward all files, the output path already includesfoo.jswhen we attempt to symlink the output of transpilingfoo.hbs. I think step one would be to setup a failing test in broccoli-filter with ^ as a minimal reproduction.The solution likely either includes:
fs.unlinkSync(destPath)before callingsymlinkOrCopy.synctry/catchand auto-retry upon EEXIST error after unlinkingcc @rwjblue