通过聚合名称或部分名称导入聚合

Importing aggregates either through the aggregate name or through part names

以下作品非常好:

// libPart1.js
export default 'file part1.js';

// libPart2.js
export default 'file part2.js';

// lib.js
import libPart1 from './libPart1';
import libPart2 from './libPart2';

export default {
    libPart1, libPart2
}

// main1.js
import lib from './lib';

console.dir(lib.libPart1);
console.dir(lib.libPart2);

我也可以使用命名导入:

// lib.js
export {default as libPart1} from './libPart1';
export {default as libPart2} from './libPart2';

// main2.js
import {libPart1, libPart2} from './lib';

console.dir(libPart1);
console.dir(libPart2);

尽管如此,我想以 main1.jsmain2.js 都能正常工作的方式编写 lib.js

如果重要的话,我正在使用 webpack。

不,不要 default-export 对象文字。始终使用命名导出。要使用 lib 对象启用样式,请在要导入模块的 main1.js 文件中使用 命名空间导入 。不要更改出口申报单。

// lib.js
export {default as libPart1} from './libPart1';
export {default as libPart2} from './libPart2';

// main1.js
import * as lib from './lib';
//     ^^^^^^^^
console.dir(lib.libPart1);
console.dir(lib.libPart2);

// main2.js
import {libPart1, libPart2} from './lib';

console.dir(libPart1);
console.dir(libPart2);