gpt4 book ai didi

javascript - 无法弄清楚如何使用 javascript 在浏览器中导入模块

转载 作者:行者123 更新时间:2023-11-29 20:41:41 24 4
gpt4 key购买 nike

这是一个简单的问题。我正在尝试将模块从一个 javascript 文件导入到另一个文件,然后在 Chrome 上运行它。我正在使用 2 个 javascript 文件和一个 html 文件,它们都在同一个文件夹中:

第一个 js 文件 (testfile1.js):

import {test} from 'testfile2.js';

test.func();

第二个 js 文件 (testfile2.js):

let f = function() {
console.log("TEST");
}

let test = {
func: f
};

export test;

html 文件是普通的空 html 文件,标题中包含指向 testfile1.js 脚本的链接:

<script type="text/javascript" src="testfile1.js"></script>

每当我在 chrome 中打开 html 文件时,我都会收到错误消息:

testfile1.js:1 Uncaught SyntaxError: Unexpected token {

当我删除导入语句中的括号时,我得到了一个意外的标识符语句。这不是在浏览器中导入模块的正确方法吗?为什么它根本不起作用?

最佳答案

模块需要type="module"不是"text/javascript"

根据 Jaromanda X 的评论,您需要更改 type 的值<script> 的属性标记为 "module"作为import { test } from 'testfile2.js'是模块代码。

<script type="module" src="testfile1.js" />

关于动态import()呢?

如果你真的不想用type="module" , 任何 javascript 文件都可以使用动态 import()语法,即使没有 type="module" .

但是,动态导入有一个警告,函数 import()返回一个 promise ,因此,您无法同步使用它。您必须 await.then动态导入以使用它解析为的值。

import('testfile2.js').then(({ test }) => {
// your code
});

关于javascript - 无法弄清楚如何使用 javascript 在浏览器中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55310227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com