require.default

require.default

当你使用 CommonJS 的 require 函数来导入一个 ES6 模块时,如果该模块使用了 export default 语法导出默认内容,require 并不能直接访问这个默认导出的内容,而是需要通过 .default 属性来访问。

举个例子:

假设你有一个 ES6 模块 example.js,它是这样导出的:

1
2
3
4
// example.js
export default function greet() {
console.log('Hello!');
}

如果你使用 import(ES6 语法)来导入它,可以直接这样写:

1
2
import greet from './example.js';
greet(); // 输出 'Hello!'

但是,如果你使用 CommonJS 的 require

1
2
const greet = require('./example.js');
greet(); // 这里会报错,因为 greet 是模块对象,默认导出需要通过 .default 访问

正确的方式是通过 .default 来访问默认导出:

1
2
const greet = require('./example.js').default;
greet(); // 输出 'Hello!'