[WIP] - Switch to Rollup#895
[WIP] - Switch to Rollup#895Florian-R wants to merge 4 commits intochaplinjs:masterfrom Florian-R:rollup
Conversation
This was not needed, the coverage already provide this hooks.
src/chaplin/composer.coffee
Outdated
There was a problem hiding this comment.
I've just stumble upon the external option of rollup, I'll change this one in a future commit
src/chaplin.coffee
Outdated
There was a problem hiding this comment.
I'm not super fluent with ES6 modules, almost always used CommonJS. Cannot find a way have the import inlined in the export as were the require. Let me know if this could be done in a nicer way.
There was a problem hiding this comment.
ES6 modules can do export { foo } from 'bar.coffee', but that won't help here. Furthermore, we should be careful not break CommonJS users because of default thing.
Gruntfile.coffee
Outdated
There was a problem hiding this comment.
Tests breaks, because we babel-register had a extension hook but it expect .js file.
A simpler approach could be compile our files before running test in a tmp dir, but it may breaks coverage and will be slower and dirtier.
src/chaplin.coffee
Outdated
There was a problem hiding this comment.
Had to keep extensions, else rollup doesn't resolve the files. See rollup/rollup#1052 (comment). Let me know if your cool with this, else I'll try to use rollup-plugin-node-resolve.
There was a problem hiding this comment.
I think we should give rollup-plugin-node-resolve a try, .coffee does not look very nice to me.
|
👍 |
|
Added some commits, I got rid of the coffee extensions, and cleaned remaining I've updated my first post, the bundle is way smaller (didn't check gzip tough). I'd work on getting the tests to pass, in the meantime, @embs could you do a quick check with my rollup-build branch and confirm it fixes your gulp setup? I can confirm this one works fine with Brunch. |
|
Outstanding job, @Florian-R! Code looks so much better now. |
src/chaplin/application.coffee
Outdated
There was a problem hiding this comment.
Not sure that we should remove .coffee here.
There was a problem hiding this comment.
Wrong search and replace, I'll revert.
|
Also, we should remove all |
src/chaplin/lib/utils.coffee
Outdated
There was a problem hiding this comment.
No, the require was intended. There's a dependency cycle between utils and mediator.
There was a problem hiding this comment.
I'll double check but I'm pretty sure Rollup handle circular dependencies.
Make sense, done for the |
|
Added one commits for the test. I had to use a tmp dir to compile the coffee. See benbria/coffee-coverage/issues/82 for the rationale. Let me know if your good with this approach, and I'll tweak the code to avoid a double compilation. |
| grunt.registerTask 'test', 'mochaTest:native' | ||
| grunt.registerTask 'test:jquery', 'mochaTest:jquery' | ||
| grunt.registerTask 'test', ['clean', 'instrument', 'coffee:test', 'mochaTest:native'] | ||
| grunt.registerTask 'test:jquery', ['clean', 'instrument', 'coffee:test', 'mochaTest:jquery'] |
There was a problem hiding this comment.
This part need some rework.
| "plugins": [ | ||
| "transform-es2015-modules-commonjs" | ||
| ] | ||
| } |
There was a problem hiding this comment.
Inlined this to avoid a .babelrc
| 'coffee-script/register' | ||
| 'coffee-coverage/register-istanbul' | ||
| -> | ||
| global._$coffeeIstanbul = {} |
There was a problem hiding this comment.
This is ugly, but needed. istanbul add something like
if (typeof _$coffeeIstanbul === 'undefined') _$coffeeIstanbul = {};in every modules. This breaks badly with babel-register which wrap the code in a function with a use strict pragma.
Edit: In all fairness, this comes indeed from coffee-coverage. I've proposed a fix here benbria/coffee-coverage#82 (comment)
| "grunt-cli": "~0.1.13", | ||
| "grunt-coffeelint": "~0.0.15", | ||
| "grunt-contrib-clean": "1.0.0", | ||
| "grunt-contrib-coffee": "florian-r/grunt-contrib-coffee", |
There was a problem hiding this comment.
This is WIP pending a new release of grunt-contrib-coffee. The current version use an old version of coffee-script.
|
Closing per #900 |
This is one should fixes #894. For now, all tests explode because I couldn't figure a way to compile the code correctly with grunt-mocha-test, but I'd like to grab early comments.
TBD:
cc @embs @shvaikalesh