在webpack 1博士声明中,webpack 2将使用System.import()进行动态要求:
幸运的是,正在编写一个
System.import). API“JavaScript”规范来处理动态用例:System.load(或System.load)。此API将是与上述require变体相同的本地API。
在这段时间里,网络上到处都是使用这个示例的System.import()。
释放webpack前2,作者决定将System.import()改为import()
添加
import()作为代码拆分结构。在可能的情况下,应该使用它而不是System.import。System.import将在webpack 2发行版中被废弃( webpack 3中删除),因为它的行为是不正确的,根据规范。
这个import()是基于tc39 39/建议书-动态-导入规范的,您可以读到更多为什么他们做出这种更改的这里。
System.import() 和 import()**?**之间的区别,能有人解释吗?
尽管名称不同,但用法看起来是一样的:
import(modulePath)
.then(module => module.default())
.catch(/* ... */);
System.import(modulePath)
.then(module => module.default())
.catch(/* ... */);但是在weback 2文档中是:"System.import()行为根据规范是不正确的“,因此它表明System.import()和import()之间存在差异。
发布于 2017-11-13 19:10:10
下面是你要找的东西:tc39进口提案
实际功能 Loader集合的草稿在不同的时候都有名为System.import()或System.loader.import()或类似的实际函数(不仅仅是类似于函数的语法形式),这些功能完成了相同的用例。 正如规范编辑器之前所指出的,这里最大的问题是如何解释这些函数的说明参数。因为这些只是函数,在整个领域中是相同的,并且每个脚本或模块都不改变,所以函数必须对其参数进行相同的解释,无论从何处调用它。(除非实现了一些真正奇怪的东西,如堆栈检查。)因此,这可能会遇到与上面的importModule函数的文档基URL问题类似的问题,其中相关模块说明符成为一个错误场,并且不匹配任何附近的导入声明。
https://stackoverflow.com/questions/42192586
复制相似问题