@wordpress/惰性导入

导入NPM模块,即使没有在本地安装或定义为项目的依赖项。使用本地安装的软件包(如果可用)。否则,包将按需动态下载。

安装

安装模块

npm install@wordpress/lazy-import--保存

此包假定您的代码将在2015年欧洲标准+环境。如果您使用的环境对此类语言功能和API的支持有限或不支持,您应该包括polyfill发货@wordpress/babel预设在代码中。

要求

需要NPM 6.9.0或更新版本,因为它使用包别名功能维护同一包的多个版本。

用法

使用目的是模仿动态进口功能,接收NPM包的名称(和可选版本说明符)并返回解析为所需模块的承诺。

注:目前,这条路线进口是肤浅的,模块解析仍然使用通用JS要求,而不是更新的ES模块支持。一旦Node.js的LTS版本(包括未标记的ES模块支持)可用,此包的未来版本可能会支持ES模块。

传递给的字符串lazyImport(惰性导入)可以完全按照您提供的格式设置npm安装,包括可选的版本说明符(包括版本范围). 如果省略版本说明符,它将被视为等同于*,使用本地安装的软件包的版本(如果可用),否则安装最新的可用版本。

const lazyImport=需要('@wordpress/lazy-import');lazyImport('is-equal-shallow@^0.1.3').then((isEqualShallow)=>{log(isEqualShallow({a:true,b:true},{a:true,b:true}));//真实的} );

如果您使用的是Node v14.30或更新版本,您还可以利用顶层等待简化顶级导入:

const lazyImport=需要('@wordpress/lazy-import');const isEqual-shallow=等待lazyImport('is-equal-shallow@^0.1.3');log(isEqualShallow({a:true,b:true},{a:true,b:true}));//真实的

lazyImport(惰性导入)可以选择接受第二个参数,即options对象:

const lazyImport=需要('@wordpress/lazy-import');函数onInstall(){console.log(“正在安装…”);}lazyImport('fbjs@^1.0.0'{本地路径:“/lib/shallowEqual’,安装时,}),然后是(/*…*/);

请注意lazyImport(惰性导入)脱机时可能引发错误,并且无法使用NPM安装依赖项。您可能希望预见到这一点,并为失败的安装提供补救步骤,例如记录警告消息:

尝试{wait lazyImport('等于浅@^0.1.3');}捕获(错误){if(错误代码===“ENOTFOUND”){console.log('无法连接到NPM注册表!');}}

选项

本地路径

  • 类型:一串
  • 必需:否

指向文件或目录的本地路径,当其他脚本主要的需要导入。

onInstall(安装时)

  • 类型:功能
  • 必需:否

函数在安装模块时调用。由于安装可能会导致脚本执行延迟,因此这对于输出日志信息或显示微调器很有用。

一旦解决了返回的承诺,就可以假定安装已完成。

参与此包

这是古腾堡项目的一部分。该项目组织为单回购。它由多个独立的软件包组成,每个包都有特定的用途。此monorepo中的包发布到净现值法并由使用WordPress(文字出版社)以及其他软件项目。

要了解更多关于对这个包或古腾堡整体贡献的信息,请阅读该项目的主要内容贡献者指南.