Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 为什么基于web的前端绑定器需要开发服务器_Javascript_Html_Webpack Dev Server - Fatal编程技术网

Javascript 为什么基于web的前端绑定器需要开发服务器

Javascript 为什么基于web的前端绑定器需要开发服务器,javascript,html,webpack-dev-server,Javascript,Html,Webpack Dev Server,我从未真正想过这一点,直到我从webpack切换到brunch,在index.html中看到以下几行: <script type="text/javascript"> require('main'); </script> require关键字给出了错误,因为它是一种要求外部文件的虚构方式。如果您使用标准的本机实现import,它将在较新的浏览器上开箱即用。不需要绑定器 要求来自 他们正在寻找单词require,本质上,就是将源路径上的代码注入到构建文

我从未真正想过这一点,直到我从webpack切换到brunch,在index.html中看到以下几行:

<script type="text/javascript">
      require('main');
    </script>

require
关键字给出了错误,因为它是一种要求外部文件的虚构方式。如果您使用标准的本机实现
import
,它将在较新的浏览器上开箱即用。不需要绑定器

要求来自

他们正在寻找单词
require
,本质上,就是将源路径上的代码注入到构建文件中。这就像我为我的
InjectFileJS
项目制作了一个
injectFile
关键字一样

<script type="text/javascript">
  injectFile('main');
</script>

注入文件('main');
这将产生相同的错误,因为injectFile未定义。您需要在web服务器上运行“我的组合文件加载器”来解析和传输文件,该函数才能存在

但是,如果您使用
import
,您可以在新浏览器上不需要捆绑程序:


您正在加载
/app.js
,它将定义您的
require
功能

URL以
/
开头

如果从Web服务器加载,则
/
引用站点的根目录


如果从本地文件系统加载,则
/
指的是文件系统的根目录(如果是Windows,则指磁盘)。这将是错误的位置,因为webpack不会在那里生成它(您不希望为使用webpack构建的每个应用程序创建
c:\app.js

“它会产生错误”-读取错误可能会提供线索!可能是它的副本不一样,你显然没有读我的问题。我试图理解web服务器做了什么,而仅仅打开一个文件却没有。上面的错误只是说require没有定义,它没有解释web服务器如何定义它或修复它“您显然没有阅读我的问题”-您显然没有阅读可能的副本。请再试一次,看看问题的解决方案是“使用Web服务器”。你也没能提供一个答案,这就是为什么我用模糊的推测来评论,而不是结束问题或回答问题。你显然没有阅读我的问题,因为我已经理解你需要一个web服务器,我正在试图理解为什么。这并不含糊,您需要web服务器进行捆绑,我正试图了解原因。你提供的链接只是说“使用网络服务器”,这并没有回答我的问题,为什么要投反对票?这从字面上回答了确切的问题?问题是“为什么使用Web服务器可以解决这个问题?”。这并不能回答这个问题,它只是解释了为什么
require
是未定义的,除非完成了“某事”。它没有解释为什么使用web服务器会定义
require
。我没有否决,所以像apache这样的web服务器本机就包含了requirejs?因为它在从web服务器(如apache@DavidTorrey-“所以像apache这样的web服务器本机就包含了requirejs”-不,它们没有。@Quentin补充了一点细节,提到在web服务器上传输我认为这是有效的,我删除了/并将其作为一个相对引用,但它只是说“语法错误”,哦,我在那里也输入了一个错误。好的,所以包是包含require的,这只是路径问题。谢谢你,我确信不会有任何额外的事情发生,这就是为什么我如此困惑的原因
(t,r){null==r&&(r="/");var i=l(t);if(o.call(n,i))return n[i].exports;if(o.call(e,i))return u(i,e[i]);throw new Error("Cannot find module '"+t+"' from '"+r+"'")}: 
<script type="text/javascript">
  injectFile('main');
</script>
<script src="/app.js"></script>