JavaScript从functions.js导入{func1,func2,func3};意外代币';{';

JavaScript从functions.js导入{func1,func2,func3};意外代币';{';,javascript,import,export,Javascript,Import,Export,我有一个小的web应用程序,现在我决定将它整理一下,并将函数分离到functions.js文件中 我正在导出这些并在main.js文件中导入这些,但是我得到了错误“uncaughtsyntaxerror:uncontractedtoken'{” 我在index.html中定义它 <head> <script type = "module" src="functions.js"></script> </head&

我有一个小的web应用程序,现在我决定将它整理一下,并将函数分离到functions.js文件中

我正在导出这些并在main.js文件中导入这些,但是我得到了错误“uncaughtsyntaxerror:uncontractedtoken'{”

我在index.html中定义它

<head>
  <script type = "module" src="functions.js"></script>
</head>
<body>
  <div id="root"></div>
  <script type = "module" src="scripts.js"></script>
</body>
Main.js

import { hello, hello2 } from 'functions.js';
然而,当我使用“静态服务器”运行这个程序时,我得到了上面提到的错误。
我不知道为什么会发生这种情况,因为代码看起来还行?

您使用的是nodejs。它需要CommonJS模块语法。这意味着

export function hello() {
        return "Hello";
    }
变成

module.exports = function hello() {
        return "Hello";
    }
与导入相同

请在此处查找更多信息,尤其是第三个答案:


不要像这样导出:

export function hello() {
        return "Hello";
    }
export function hello2() {
        return "Hello";
    }
将其更改为:

 function hello() {
            return "Hello";
        }
     function hello2() {
            return "Hello";
        }

export default {hello, hello2}

我已经找出了问题所在。我正在将代码打包

$(function(){
import {hello, hello2} from './functions.js'
}
以帮助记录负载竞争条件。 相反,我需要将导入移到这个上方

import {hello, hello2} from './functions.js'
$(function(){

}

@RandyCasburn-我忽略了显示,但我有一个用相关信息更新的
问题这里是它应该是什么样子:-您只需要一个带根模块的脚本标记。然后,在导入语句中,您需要
functions.js
的绝对或相对路径-最简单的方法是使用
>./functions.js
@RandyCasburn-我已经这样做了,但仍然存在相同的问题
未捕获的SyntaxError:Main.js文件中导入{hello}的意外标记{
.plunkr有效…对吗?你是如何运行你的项目或加载你的HTML文件的?@RandyCasburn-我通过node.js运行静态服务器,因为那里有所有的本地文件OP没有使用NodeJS来执行javascript文件。他是从HTML文件的
加载ES6模块。@RandyCasburn这是第二个问题,是的:D但是他的描述Bed错误消息来自一个需要CommonJS语法的环境。(正如您在他最后的评论中看到的,他确实使用nodejs作为服务器)我编辑了我的评论。OP没有使用NodeJS来执行javascript文件。他是从HTML文件的
加载ES6模块。该文件确实是从使用NodeJS运行的HTTP服务器加载的。您可能非常正确,我们需要看看OP以Plunkr.Ping的形式提供了什么-仅供参考,以便您了解OP请自己考虑下一次在项目中提供实际代码的问题——而不是你认为需要提供的代码。如果你只需要共享你的实际代码,那就需要10秒的修复!
import {hello, hello2} from './functions.js'
$(function(){

}