Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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_Node.js_Npm - Fatal编程技术网

Javascript 浏览器支持模块导入,如何使用?

Javascript 浏览器支持模块导入,如何使用?,javascript,node.js,npm,Javascript,Node.js,Npm,我试图弄清楚为什么我的脚本标记在html文件中不起作用,我看到一篇文章说,可以通过带有module类型的脚本标记将模块导入浏览器。直接从本网站: example.js文件 我希望这是有意义的,但我真的想理解为什么我不能只需要或导入JS文件中的内容,然后通过脚本将其添加到html中。我一直在使用webpack将所有内容打包并放入我的html中。但是我现在正在制作一个npm包,我听说人们不喜欢预先打包的包,所以我试图找到一种方法,让用户在html中使用我的模块,而不必安装webpack或类似的东西。

我试图弄清楚为什么我的脚本标记在html文件中不起作用,我看到一篇文章说,可以通过带有
module
类型的脚本标记将模块导入浏览器。直接从本网站:

example.js文件


我希望这是有意义的,但我真的想理解为什么我不能只需要或导入JS文件中的内容,然后通过脚本将其添加到html中。我一直在使用webpack将所有内容打包并放入我的html中。但是我现在正在制作一个npm包,我听说人们不喜欢预先打包的包,所以我试图找到一种方法,让用户在html中使用我的模块,而不必安装webpack或类似的东西。

中声明的变量是本地变量单元将
example.js
作为一个模块,从那里导入类,您可以使用它们:

HTML


中声明的变量是该模块的本地变量。将
example.js
作为一个模块,从那里导入类,您可以使用它们:

HTML


每个模块都在其自己的作用域中求值,而不是在全局作用域中求值。每个模块都在其自己的作用域中求值,而不是在全局作用域中求值。噢,哇,这太奇怪了,我习惯了不必将文件扩展名添加到路径中。通常在节点中,我不必这样做。我以为香草也一样。它现在可以工作了,谢谢@auxtacode可以对实际文件名做出有根据的猜测;浏览器不能。您可以从PHP脚本的输出导入
”https://static.example.com/ill_advised_dynamic_script?call_a_brick_a=brick“
。我的观点是浏览器不能假设
”/brickbreakclasses“
实际上意味着“向
发出请求”http://example.com/brickbreakclasses.js
”哦,哇,这太奇怪了。我已经习惯了不必在路径中添加文件扩展名。通常在节点中,我不必这样做。我以为香草也一样。它现在可以工作了,谢谢@auxtacode可以对实际文件名做出有根据的猜测;浏览器不能。您可以从PHP脚本的输出导入
”https://static.example.com/ill_advised_dynamic_script?call_a_brick_a=brick“
。我的观点是浏览器不能假设
”/brickbreakclasses“
实际上意味着“向
发出请求”http://example.com/brickbreakclasses.js
”。
<script type="module" src="./main.js"></script>
 // or
<script type="module">
  import { something } from './somewhere.js';
    // ...
</script>
//HTML 
<body>
  <script type="module">
    import { World, Ball, Paddle, Brick, Hud} from "./brickbreakclasses.js"
  </script>
  <script src="example.js"></script>
</body>
 // commented this part out because it was imported in html file    
 // import { World, Ball, Paddle, Brick, Hud } from "./brickbreakclasses";
var canvas = new World(document.getElementById("canvas") );
var ball = new Ball(canvas)
var brick = new Brick(canvas)
var hud = new Hud(canvas)
var paddle = new Paddle(canvas)
<body>
  <script type="module" src="example.js"></script>
</body>
import { World, Ball, Paddle, Brick, Hud } from "./brickbreakclasses.js";
var canvas = new World(document.getElementById("canvas") );
var ball = new Ball(canvas);
var brick = new Brick(canvas);
var hud = new Hud(canvas);
var paddle = new Paddle(canvas);