导入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(文字出版社)以及其他软件项目。
要了解更多关于对这个包或古腾堡整体贡献的信息,请阅读该项目的主要内容贡献者指南.