在调试器中未定义ES6模块导入

撒拉族

在与Babel和Webpack一起玩耍时,我偶然发现了一些今天很奇怪的行为。

我在里面放了一个调试器,main.js看我是否正确导入了,但是Chrome的控制台一直大喊我试图导入的模块未定义。我尝试用控制台记录相同的模块,然后将其打印到控制台。

是什么赋予了?我在下面粘贴了相关的代码段:

main.js

import Thing from './Thing.js';

debugger // if you type Thing into the console, it is not defined

console.log(new Thing()); // if you let the script finish running, this works

thing.js

class Thing {
}

export default Thing;

webpack.config.js

var path = require('path');
module.exports = {
    entry: './js/main.js',
    output: {
        path: __dirname,
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            { test: path.join(__dirname, 'js'), loader: 'babel-loader' }
        ]
    }
};
费利克斯·克林

tl; dr: Babel不一定保留变量名称。


如果我们看一下代码生成

import Thing from './Thing.js';

debugger;

console.log(new Thing());

即:

'use strict';

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

var _ThingJs = require('./Thing.js');

var _ThingJs2 = _interopRequireDefault(_ThingJs);

debugger;

console.log(new _ThingJs2['default']());

我们看到Things确实没有定义。因此Chrome是正确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在浏览器中反应组件未定义-ES6导入/导出

ES6导入导入未定义

ES6模块:导入后未定义的onclick函数

ES6模块:首先未定义导入的常量;他们稍后可用

es6模块导出/导入:未捕获的TypeError:无法读取未定义的属性“默认”

ES6模块-如果未在React组件中导入的常量未定义

JS ES6:导入{functionName}未定义

在TypeScript中,导出自定义ES6模块并导入到另一个本地项目中始终是未定义或{}

ES6模块“ Uncaught ReferenceError:在HTMLButtonElement.onclick中未定义函数”

为什么在调试器中未定义“ this”,但在console.log中可打印?

AngularJs 1.5 ES6:控制器中未定义的绑定

AngularJS:为什么在我的ES6控制器中未定义$ scope?

ES6类中的javascript'this'返回未定义

HTML中未定义的ES6类对象

测试具有RequireJS依赖项的es6模块时,在Jest中“未定义定义”

当不在远程调试模式下时,React Native中未定义ES6代理吗?

es6箭头函数调试器语句

在调试器控制台中运行 es6

ES6`未定义获取'

使用es6模块:未捕获的ReferenceError:定义未定义

为什么在ES6模块中导出的对象具有未定义的方法?

使用重接线测试节点ES6模块-功能未定义

带有 axios 的 es6 异步模块 - ReferenceError: require 未定义

SetInterval不重复[循环结束时,控件移至Chrome调试器中的未定义窗口]

Chrome浏览器调试器将jQuery语句作为“未定义函数”返回

仅在启用RubyMine调试器的情况下为nil:NilClass获取未定义的方法“ +”

Chrome调试器为何认为封闭的局部变量未定义?

所有变量在python调试器中都未定义

松露调试器:TypeError:无法读取未定义的属性“行”