gpt4 book ai didi

javascript - nodejs 模块名称中的 "!"字符有什么作用?

转载 作者:IT老高 更新时间:2023-10-28 23:01:35 26 4
gpt4 key购买 nike

我已经开始使用 intern 库在 js 中编写功能测试,我意识到我无法理解这种语法:

var assert = require('intern/chai!assert');
var registerSuite = require('intern!object');

require() 方法的参数中的 ! 字符的作用是什么?

最佳答案

简答

它标识作为插件一部分的资源。
标识符的结构是:[plugin]![resource].

长答案

documentation ,你可以发现:

Intern is built on top of a standard amd loader, which means that its modules are also normally written in the AMD module format.

这就是实际注入(inject) require 函数的原因和方式,因此很明显您没有使用随 Node.JS 提供的 require 模块

它还指出:

[AMD format] Allows modules and other assets to be asynchronously or conditionally resolved by writing simple loader plugins

如果您关注 link在引用加载程序时随文档一起提供,您会发现:

Loader plugins extend an AMD implementation by allowing loading of resources that are not traditional JavaScript dependencies.

特别是,您可以发现依赖项具有以下形式:

[Plugin Module ID]![resource ID]

不用说,您使用 intern 获得的 loader 的默认实现符合上述标准。

也就是说,如果我们考虑:

intern/chai!assert

你可以将它理解为 inter/chai 作为插件模块,assert 作为实际需要的资源。

require() 方法的参数中的 ! 字符的目的是满足用于识别资源的语法要求,该资源本身就是一个插件。

关于javascript - nodejs 模块名称中的 "!"字符有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34925439/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com