16j*_*obj 14 javascript module es6-modules
这是一个简单的问题。我正在尝试将模块从一个 javascript 文件导入到另一个文件,然后在 Chrome 上运行它。我正在使用 2 个 javascript 文件和一个 html 文件,它们都在同一个文件夹中:
第一个js文件(testfile1.js):
import {test} from 'testfile2.js';
test.func();
Run Code Online (Sandbox Code Playgroud)
第二个js文件(testfile2.js):
let f = function() {
console.log("TEST");
}
let test = {
func: f
};
export test;
Run Code Online (Sandbox Code Playgroud)
html 文件是简单的空 html 文件,在标题中带有指向 testfile1.js 脚本的链接:
<script type="text/javascript" src="testfile1.js"></script>
Run Code Online (Sandbox Code Playgroud)
每当我在 chrome 中打开 html 文件时,都会出现错误:
testfile1.js:1 Uncaught SyntaxError: Unexpected token {
Run Code Online (Sandbox Code Playgroud)
当我删除 import 语句中的括号时,我得到了一个意外的标识符语句。这不是在浏览器中导入模块的正确方法吗?为什么它根本不起作用?
Chr*_*e55 15
type="module"不"text/javascript"按照Jaromanda X的评论,您需要将的值更改type的属性<script>标签"module"的import { test } from 'testfile2.js'是模块代码。
<script type="module" src="testfile1.js" />
Run Code Online (Sandbox Code Playgroud)
import()如果你真的不想使用type="module",任何 javascript 文件都可以使用动态import()语法,即使没有type="module".
但是,动态导入有一个警告,该函数import()返回一个promise,因此您无法同步使用它。您必须使用await或.then动态导入才能使用它解析为的值。
import('testfile2.js').then(({ test }) => {
// your code
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7506 次 |
| 最近记录: |