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

标签 javascript webpack ecmascript-6 es6-modules

以下作品非常好:

// 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。

最佳答案

不,不要默认导出对象文字。始终使用命名导出。要使用 lib 对象启用样式,请在要导入模块的 main1.js 文件中使用 namespace import。不要更改导出报关单。

// 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);

关于javascript - 通过聚合名称或部分名称导入聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56948829/

相关文章:

javascript - 如何在更改复选框时取回输入的值?

javascript - Internet Explorer 10 忽略 XMLHttpRequest 'xhr.withCredentials = true'

javascript - 有什么方法可以自动加载 webpack 外部文件吗?

javascript - 如何在 Webpack 中使用缓存清除?

javascript - Jest 无法使用 Typescript 导入(SyntaxError : Cannot use import statement outside a module)

javascript - 使用扩展运算符作为参数

javascript - 更改值后访问 HTML5 data-* 属性

reactjs - 将 Material-ui 与 ecmascript6 结合使用

javascript - 使用传递给dumb组件的方法设置状态

javascript - 根据星期几激活选项卡