Eve*_*tss 19 javascript import ecmascript-6 webpack webpack-2
在webpack 1中,docs是 webpack 2将System.import()
用于动态需求的声明:
幸运的是,有一个JavaScript API"加载器"规范被编写来处理动态用例:(
System.load
或System.import
).此API将与上述require
变体等效 .
在此期间,网络上的所有内容都是使用它的例子System.import()
.
在发布webpack 2之前,作者决定System.import()
改为import()
:
添加
import()
为Code Splitting构造.它应该System.import
在可能的情况下使用.System.import
将在webpack 2发布中弃用(在webpack 3中删除),因为根据规范它的行为是不正确的.
这import()
基于tc39/proposal-dynamic-import规范,您可以在此处阅读更多为何进行此更改的原因.
有人可以解释System.import()
和之间的区别import()
吗?
尽管名称不同,但用法看起来相同:
import(modulePath)
.then(module => module.default())
.catch(/* ... */);
System.import(modulePath)
.then(module => module.default())
.catch(/* ... */);
Run Code Online (Sandbox Code Playgroud)
但是在weback 2中,doc是:" System.import()
根据规范行为是不正确的" - 所以它表明System.import()
和之间存在差异import()
.
你的第一句话的重要部分是
正在编写的规范
当Webpack 1实现时System.import
,规范仍在不断发展.如果事实仍然如此.实现了Webpack 1,System.import
因为当时正在被抛弃的是潜在的API.
Webpack 2实现import()
是因为这是一种新的提议,用于标准化语法方法而非基于库的方法.
这就是您要查找的内容: tc39 进口提案
一个实际的函数
Loader 想法集合的草稿在不同时期都有名为 System.import() 或 System.loader.import() 或类似的实际函数(不仅仅是类似函数的语法形式),它们完成相同的用例。
正如规范编辑先前指出的,这里最大的问题是如何解释这些函数的说明符参数。由于这些只是函数,在整个 Realm 中都是相同的,并且不会因脚本或模块而异,因此无论从何处调用,函数都必须以相同的方式解释其参数。(除非实现了像堆栈检查这样真正奇怪的东西。)这很可能会遇到与上面 importModule 函数的文档基 URL 问题类似的问题,其中相对模块说明符成为错误场并且与任何附近的导入声明不匹配。
归档时间: |
|
查看次数: |
13765 次 |
最近记录: |