postprocessTree never called when consumed by addon
asakusuma opened this issue · comments
I suspect this is an ember-cli issue, but when an addon uses ember-browserify, the consuming application will throw this error:
$ ember build
version: 0.2.5
Build failed.
Path or pattern "browserify/browserify.js" did not match any files
Error: Path or pattern "browserify/browserify.js" did not match any files
at Object.multiGlob (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli-kitchen-sink-helpers/index.js:202:13)
at Class.module.exports.CachingWriter.extend.addFiles (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/concat-with-maps.js:74:13)
at Class.module.exports.CachingWriter.extend.updateCache (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/concat-with-maps.js:52:12)
at /Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/index.js:92:34
at lib$rsvp$$internal$$tryCatch (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:489:16)
at lib$rsvp$$internal$$invokeCallback (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:501:17)
at lib$rsvp$$internal$$publish (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:472:11)
at lib$rsvp$asap$$flush (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1290:9)
at process._tickCallback (node.js:355:11)
This has something to do with the fact that postprocessTree
is not called on ember-browserify, which is not a direct depedency of the app.
I reproduced this in a dummy app here: https://github.com/asakusuma/nested-ember-browserify
Yes, this is a general ember-cli limitation. It needs better support for recursive addon hooks. Conceptually I think it could be made it work without any changes to ember-browserify.
Ok I tried propagating the hook calls in the addon down to ember-browserify: asakusuma/uses-ember-browserify@0a5a206
I don't quite understand the new error because postprocessTree
seems to be passing a valid tree. @stefanpenner got any workarounds for recursive hook calls?
$ ember build
version: 0.2.5
Build failed.
Cannot read property 'rebuild' of undefined
TypeError: Cannot read property 'rebuild' of undefined
at Builder.wrapIfNecessary (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli/lib/builder.js:136:18)
at readAndReturnNodeFor (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli/lib/builder.js:44:17)
at /Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/broccoli/lib/builder.js:22:14
at lib$rsvp$$internal$$tryCatch (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:489:16)
at lib$rsvp$$internal$$invokeCallback (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:501:17)
at /Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1095:13
at lib$rsvp$asap$$flush (/Users/akusuma/workspace/opensource/nested-ember-browserify/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:1290:9)
at process._tickCallback (node.js:355:11)
@stefanpenner got any workarounds for recursive hook calls?
nope
@chadhietala's pre-packager work supports nested NPM imports correctly. https://github.com/chadhietala/ember-cli-pre-packager
The plan is for this eventually to part of ember-cli (once its complete)
Alright, I'll just bug @chadhietala to get it done faster haha
Closing, thanks guys
Alright, I'll just bug @chadhietala to get it done faster haha
i suspect you know where to find him ;)