举下面的例子。
import { QueryClientContract, TransactionClientContract } from '@ioc:Adonis/Lucid/Database'
冒号的使用让我很困惑,从来没有理解过导入的文件可以从哪里引用。
rvpgvaaj1#
模块的前缀已经存在了一段时间,尽管直到最近它们才完全影响模块的功能(你可以阅读更多关于这个开发here的信息)。看起来这些模块上的这个特定前缀是由Adonis.js的安装过程提供的,并且考虑到工具包使用自定义命令来进行诸如构建项目的生产版本之类的事情,它 * 可能 * 有一些自定义过程,例如加载专门用于生产构建的依赖关系的最小化版本。目前在node:之外,使用这样的前缀并没有标准化的含义或效果(它限制了核心包的导入,并防止您由于输入错误而意外下载恶意包)。一些项目将此用于内部目的,这将取决于特定项目前缀可能会或可能不会产生什么影响。
Adonis.js
node:
hyrbngr72#
在import语句中,您导入的是环境模块,具体请参考以下文档。
https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules
2条答案
按热度按时间rvpgvaaj1#
模块的前缀已经存在了一段时间,尽管直到最近它们才完全影响模块的功能(你可以阅读更多关于这个开发here的信息)。看起来这些模块上的这个特定前缀是由
Adonis.js
的安装过程提供的,并且考虑到工具包使用自定义命令来进行诸如构建项目的生产版本之类的事情,它 * 可能 * 有一些自定义过程,例如加载专门用于生产构建的依赖关系的最小化版本。目前在
node:
之外,使用这样的前缀并没有标准化的含义或效果(它限制了核心包的导入,并防止您由于输入错误而意外下载恶意包)。一些项目将此用于内部目的,这将取决于特定项目前缀可能会或可能不会产生什么影响。hyrbngr72#
在import语句中,您导入的是环境模块,具体请参考以下文档。
https://www.typescriptlang.org/docs/handbook/modules.html#ambient-modules