Javascript 网页包的作用域有问题
有几个模块连接到app.js,例如其中的代码:Javascript 网页包的作用域有问题,javascript,webpack,ecmascript-6,module,es6-modules,Javascript,Webpack,Ecmascript 6,Module,Es6 Modules,有几个模块连接到app.js,例如其中的代码: var test = "TEST"; 这是我的webpack.config: module.exports = { entry: './src/app.js', output: { filename: './dist/bundle.js' } }; 问题是,当我尝试在开发人员控制台中调用我的测试变量时,我得到一个错误: 关于作用域,当我直接连接app.js时,一切正常,有什么问题以及如何解决?webp
var test = "TEST";
这是我的webpack.config:
module.exports = {
entry: './src/app.js',
output: {
filename: './dist/bundle.js'
}
};
问题是,当我尝试在开发人员控制台中调用我的测试变量时,我得到一个错误:
关于作用域,当我直接连接app.js时,一切正常,有什么问题以及如何解决?webpack的默认功能是作用于传递到其配置中的文件,请参阅此处的文档: 这意味着,如果您在文件中设置了
var
,然后将其与webpack捆绑,则它将仅在其范围内可用,在本例中,该范围是app.js文件。如果您自己在浏览器中打开文件,则不会发生作用域,因此直接查看时不会出现任何问题
如果需要在文件之外访问该测试变量,则必须将其转换为全局变量,否则它将保留在从webpack创建的bundle.js文件中 是的,这是一个范围问题。有两种方法可以解决此问题:
var
,而是使用窗口。
。(window.test=“test”
)var
(在严格模式下不工作)。test=“test”代码>
之前,声明test
(var-test;
),然后忘记var