I am trying to rewrite old application that uses require.js to use es6 imports. One of the used libraries are Backbone and Underscore. To create one big bundle and precompile es6 to es5, I use Webpack with babel-loader. Bundle gets created but when I load it in browser I am getting following error:
Uncaught TypeError: Cannot read property '_' of undefined
It seems that 'this' in Underscore is undefined in created bundle.js so root._ gives me error.
// Baseline setup
// --------------
// Establish the root object, `window` in the browser, or `global` on the server.
var root = this;
// Save the previous value of the `_` variable.
var previousUnderscore = root._;
// Establish the object that gets returned to break out of a loop iteration.
var breaker = {}
Anybody experienced the same issue?
Files processed by babel-loader
with the es2015
preset are processed by Babel as ES6 modules. In ES6 modules, this
outside of functions is undefined
. In your case, you need to add
exclude: /node_modules/,
to your babel-loader
config so that it will only process your own code. Currently, you are likely running Babel on all of your node modules too, many of which don't expect to be run through Babel and are not intended to be ES6 modules.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With