我在this website上看到了一个解释:
_interopRequireDefault():ES6 CommonJS模块按原样使用(如果它具有默认导出,则它具有名为default的属性)。正常 CommonJS模块将成为属性默认值。其他 话说回来,在后一种情况下,模块的导出将成为默认 导出。
在代码中,通常有多个_interopRequireDefault
被写入。
因此,据我所知,由于默认导出是作为整体实体导出的整个文件上的一堆键/值,_interopRequireDefault
允许选择哪些模块将输入特定代码的默认导出中,呢?
答案 0 :(得分:8)
为了让您的代码能够使用为nodejs和ES6编写的模块。
ES6和CJS(通用JS规范)中的模块工作导出方式之间存在差异。
通用JS中的模块:
public function store(StoreJobPost $request)
{
$validFormData = $request->validated();
$file = $request->file('file');
$path = $file->storeAs('library/', $file->getClientOriginalName());
$validFormData['path']= $path;
$job = JobPost::create($validFormData);
return redirect()->route('vacancies.index')->with('success', 'Job listing created successfully');
}
ES6中的模块:
module.exports = function () {};
_interopRequireDefault 的逻辑很简单:
export default function () {}
CJS在ES6之前存在。 Node仍使用CJS版本,并且所有最初为nodejs编写的模块。
尽管nodejs现在实验性地支持ES6模块,但是如果您使用-experimental 标志运行并将模块文件命名为.mjs。