gpt4 book ai didi

ecmascript-6 - 调试器期间未定义 ES6 模块导入

转载 作者:行者123 更新时间:2023-12-03 11:56:25 25 4
gpt4 key购买 nike

今天在玩 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' }
]
}
};

最佳答案

在某些调试场景中,将导入的变量分配给本地范围内的新变量可能就足够了。例如:

import Thing from './Thing.js';
const TestThing = Thing;

debugger; // although Thing will not be defined, TestThing will be defined

console.log(new TestThing());
这并不能解决手头的核心问题,但它可以作为在某些情况下进行调试的解决方法。

关于ecmascript-6 - 调试器期间未定义 ES6 模块导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30161123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com