Javascript js中的地块和全局变量

Javascript js中的地块和全局变量,javascript,parceljs,Javascript,Parceljs,我有一个简单的HTML文件,其中包括一些简单的javascript文件。没有框架,就没有模块。在其他JS文件中有一个主JS文件和助手函数 当我打开这个静态站点时,一切正常。一个文件中的JS代码能够调用另一个文件中定义的函数 当我尝试使用parcel bundler时,将其指向index.html文件,parcel会找到我的所有JS文件,并在开头添加一些内容,在文件名后附加一个哈希,并修改html文件中的链接。太好了 但是,当我在浏览器中打开此页面时,发现在一个JS文件中定义的代码无法看到在其他J

我有一个简单的HTML文件,其中包括一些简单的javascript文件。没有框架,就没有模块。在其他JS文件中有一个主JS文件和助手函数

当我打开这个静态站点时,一切正常。一个文件中的JS代码能够调用另一个文件中定义的函数

当我尝试使用parcel bundler时,将其指向
index.html
文件,parcel会找到我的所有JS文件,并在开头添加一些内容,在文件名后附加一个哈希,并修改html文件中的链接。太好了


但是,当我在浏览器中打开此页面时,发现在一个JS文件中定义的代码无法看到在其他JS文件中定义的函数,抛出
ReferenceError:is not defined
。当我检查HTML页面中包含的JS脚本时,函数确实是在全局范围中定义的。这有多奇怪?

没有一个例子很难回答,但您是否将文件导入/要求文件到您的入口点?您找到解决方案了吗?@a.mola我没有,并放弃了该项目的parcel。我想我最终只是写了一个自定义的构建脚本是的。。。所以我查看了ChromeDevTools中的source选项卡,我看到Parcel将代码放入IIFE中,因此函数、let和const变量位于不同的范围内。因此,我将它们添加到窗口对象中。类似于变量的
window.variableName=true
,或函数的
window.funcName=function funcName(){}
。这就是我能够访问函数和变量的方式,没有一个很难回答的示例,但是您是否将文件导入/需要文件到您的入口点?您找到解决方案了吗?@a.mola我没有,并放弃了该项目的parcel。我想我最终只是写了一个自定义的构建脚本是的。。。所以我查看了ChromeDevTools中的source选项卡,我看到Parcel将代码放入IIFE中,因此函数、let和const变量位于不同的范围内。因此,我将它们添加到窗口对象中。类似于变量的
window.variableName=true
,或函数的
window.funcName=function funcName(){}
。这就是我访问函数和变量的方式