Reputation: 2108
In my code I have a conditional export:
if (process.env.NODE_ENV === 'testing')
export myFunc;
In es6 this statement is not allowed because imports and exports should be top-level, but using babel with some plugins and webpack this condition is eliminated at build-time, so in my resulting code this export is either top-level or not present.
But eslint reports a parsing error and I want to get rid of it. /*eslint-disable */
doesn't work, because, well, it's not a rule violation, it's a parsing error. Is there a possible workaround?
P.S.: I know I can commonjs it, but I want to stick with es6.
Upvotes: 4
Views: 8881
Reputation: 14179
I know I can commonjs it, but I want to stick with es6.
Really, you aren't compliant with ES6 specification, so... you need to commonjs it.
The Idea behind a transpiler is that you'll can disable it when the next specification comes actual.
In this case, your code won't work in a full ES6 environment.
Upvotes: 2
Reputation: 4094
There is no workaround.
Using non-top level imports will not work with native ES6 implementations. Babel allows it because it transpiles to CommonJS require, but it is technically not allowed in ES6.
eslint issue and according espree issue
Upvotes: 1