JavaScript,can';你似乎没有导出模块?
所以我才开始学习JavaScript。我正在使用纯JavaScript,并学习代码学院的课程。来自C#我对模块的理解类似于C#中的名称空间。我在导出和导入它们时遇到问题:JavaScript,can';你似乎没有导出模块?,javascript,module,Javascript,Module,所以我才开始学习JavaScript。我正在使用纯JavaScript,并学习代码学院的课程。来自C#我对模块的理解类似于C#中的名称空间。我在导出和导入它们时遇到问题: let Module = { name: 'Hello' }; export default Module; 这向我抛出了一个错误-“未捕获的SyntaxError:意外的令牌导出” 我还尝试了ES5 Syntax: let Module = { name: 'Hello' }; module.exports = M
let Module = {
name: 'Hello'
};
export default Module;
这向我抛出了一个错误-“未捕获的SyntaxError:意外的令牌导出”
我还尝试了ES5 Syntax:
let Module = {
name: 'Hello'
};
module.exports = Module;
这会引发另一个错误-“未捕获引用错误:未定义模块”。我使用的是最新版本的Chrome,我不知道为什么JavaScript不能识别这些命令。这是非常令人沮丧的,不能让我的头围绕它。因此,我想请人帮我解决这个问题。如果您使用的是最新版本的Chrome,它确实支持ES2015+模块。您需要确保您的
脚本标记显示它是一个模块:
<script type="module">
import name from './your-module-file.js';
console.log(name); // {name: "Hello"}
</script>
从“./your module file.js”导入名称;
console.log(名称);//{name:“你好”}
那么你的第一个例子就行了
但请注意,模块
不是一个模块。这是您从模块导出的对象。您需要在脚本标记上添加属性type=“module”
。感谢您的回答,但我更困惑的是,为什么ES5示例不起作用,为什么它不能识别module.exports?我错过什么了吗?我正做的正是代码学院在他们的网站上做的。它适用于他们,但不适用于我。@DaniloDimitrievski因为它不是“ES5”,它是common.js模块样式,假定为半全局的模块
和需要
对象。如果不使用特定的库,浏览器就没有这些功能。