我正在尝试重写使用 require.js 的旧应用程序以使用 es6 导入。使用的库之一是 Backbone 和 Underscore。为了创建一个大包并将 es6 预编译为 es5,我使用 Webpack 和 babel-loader。
捆绑包已创建,但当我将其加载到浏览器中时,出现以下错误:
Uncaught TypeError: Cannot read property '_' of undefined
似乎下划线中的“this”在创建的bundle.js中未定义,因此 root._ 给了我错误。
// 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 = {}
有人遇到过同样的问题吗?
文件处理者babel-loader
与es2015
预设由 Babel 作为 ES6 模块处理。在 ES6 模块中,this
函数之外是undefined
。对于您的情况,您需要添加
exclude: /node_modules/,
to your babel-loader
配置,以便它只处理您自己的代码。目前,您可能也在所有节点模块上运行 Babel,其中许多模块不希望通过 Babel 运行,并且不打算成为 ES6 模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)