ES模块语法
以下内容旨在对ES2015规范中定义的模块行为做一个轻量级的参考,因为对导入和导出语句的正确理解对于成功使用Rollup是至关重要的。
#
导入(Importing)导入的值不能重新分配,尽管导入的对象和数组可以被修改(导出模块,以及任何其他的导入,都将受到该修改的影响)。在这种情况下,它们的行为与const声明类似。
#
命名导入(Named Imports)从源模块导入其原始名称的特定项目。
从源模块导入特定项,并在导入时指定自定义名称。
#
命名空间导入(Namespace Imports)将源模块中的所有内容作为对象导入,将所有源模块的命名导出公开为属性和方法。默认导出被排除在此对象之外。
上面的“something”的例子将被附加到作为属性的导入对象上。“module.something”。
#
默认导入(Default Import)导入源文件的默认导出
#
空的导入(Empty Import)加载模块代码,但不要创建任何新对象。
这对于polyfills是有用的,或者当导入的代码的主要目的是与原型有关的时候。
#
导出(Exporting)#
命名导出(Named exports)导出以前声明的值:
在导出时重命名:
声明后立即导出:
#
默认导出(Default Export)导出一个值作为源模块的默认导出:
仅当源模块只有一个导出时,才建议使用此做法。
将默认和命名导出组合在同一模块中是不好的做法,尽管它是规范允许的。
#
绑定是如何工作的(How bindings work)ES模块导出实时绑定,而不是值,所以值可以在最初根据这个示例导入后更改: