-
Notifications
You must be signed in to change notification settings - Fork 232
Conversation
This was not needed, the coverage already provide this hooks.
@@ -3,9 +3,9 @@ | |||
_ = require 'underscore' | |||
Backbone = require 'backbone' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've just stumble upon the external
option of rollup, I'll change this one in a future commit
CollectionView | ||
Layout | ||
View | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
'coffee-script/register' | ||
'coffee-coverage/register-istanbul' | ||
'babel-register' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
@@ -1,23 +1,43 @@ | |||
'use strict' | |||
|
|||
import Application from './chaplin/application.coffee' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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. |
@@ -106,7 +106,7 @@ module.exports = class Application | |||
# is a replacement for Backbone.Router and *does not inherit from it* | |||
# directly. It's a different implementation with several advantages over | |||
# the standard router provided by Backbone. The router is typically | |||
# initialized by passing the function returned by **routes.coffee**. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure that we should remove .coffee
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wrong search and replace, I'll revert.
Also, we should remove all |
@@ -1,5 +1,7 @@ | |||
'use strict' | |||
|
|||
import mediator from '../mediator' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the require was intended. There's a dependency cycle between utils and mediator.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll double check but I'm pretty sure Rollup handle circular dependencies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh, amazing then :-)!
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This part need some rework.
"plugins": [ | ||
"transform-es2015-modules-commonjs" | ||
] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inlined this to avoid a .babelrc
'coffee-script/register' | ||
'coffee-coverage/register-istanbul' | ||
-> | ||
global._$coffeeIstanbul = {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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