Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包的作用域有问题_Javascript_Webpack_Ecmascript 6_Module_Es6 Modules - Fatal编程技术网

Javascript 网页包的作用域有问题

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

有几个模块连接到app.js,例如其中的代码:

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
  • 希望这就是您要找的anwser。

    阅读文档: