Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript System.import()和import()之间的区别?_Javascript_Import_Webpack_Ecmascript 6_Webpack 2 - Fatal编程技术网

Javascript System.import()和import()之间的区别?

Javascript System.import()和import()之间的区别?,javascript,import,webpack,ecmascript-6,webpack-2,Javascript,Import,Webpack,Ecmascript 6,Webpack 2,在这种情况下,webpack 2中将使用System.import()进行动态需求: 幸运的是,有一个JavaScript-API“loader”规范正在开发中 为处理动态用例而编写:System.load(或 系统。导入)。此API将是与上述API等效的本机API 需要变体 在这段时间里,网络上到处都在使用这个System.import() ,作者决定将System.import()更改为import(): 添加import()作为代码拆分构造。应该使用它,而不是 系统。尽可能导入系统。导入

在这种情况下,webpack 2中将使用
System.import()
进行动态需求:

幸运的是,有一个JavaScript-API“loader”规范正在开发中 为处理动态用例而编写:
System.load
(或
系统。导入
)。此API将是与上述API等效的本机API
需要
变体

在这段时间里,网络上到处都在使用这个
System.import()


,作者决定将
System.import()
更改为
import()

添加
import()
作为代码拆分构造。应该使用它,而不是
系统。尽可能导入
<代码>系统。导入将在中被弃用 webpack 2发行版(在webpack 3中删除),因为其行为不正确 根据规范

这个
import()
是基于规范的,您可以阅读更多关于他们为什么进行此更改的内容


有人能解释一下
System.import()
import()
之间的区别吗?

尽管名称不同,但用法看起来相同:

导入(模块路径) .then(module=>module.default()) .捕获(/*…*/); 系统导入(模块路径) .then(module=>module.default()) .捕获(/*…*/);
但在weback 2中,doc是:“
System.import()
根据规范,行为是不正确的”-因此它表明
System.import()
import()
之间存在差异

正在编写的规范

当Webpack1实现
System.import
时,规范仍在发展中。如果事实仍然如此。Webpack1实现了
System.import
,因为这是当时作为潜在API被抛来抛去的东西


Webpack 2实现了
import()
,因为这是一个新的建议,旨在标准化语法方法,而不是基于库的方法。

以下是您需要的:

实际函数

Loader ideas集合的草稿在不同的时间都有实际的函数(不仅仅是像语法形式一样的函数)命名为System.import()或System.Loader.import()或类似的,它们完成相同的用例

正如规范编辑器之前指出的,这里最大的问题是如何解释这些函数的说明符参数。由于这些只是函数,在整个领域中都是相同的,并且每个脚本或模块都不不同,因此无论从何处调用函数,函数都必须对其参数进行相同的解释。(除非实现了堆栈检查等真正奇怪的功能。)这很可能会遇到与上述importModule函数的文档基URL问题类似的问题,其中相关模块说明符会成为错误库,并且与任何附近的导入声明不匹配


如果我正确阅读了您提供的链接,一个非常重要的区别是
import()
知道调用它的脚本或模块,而
System.import()
不知道。如果我是对的,这意味着可以导入('../foo'),即相对于当前模块的分辨率。我可能又弄错了,请纠正我。看来,由此产生的差异并不能解释这两者之间的实际差异(如果有的话)。