我有一个 node.js 库 lib
用 ES6 编写(用 Babel 编译),我在其中导出以下子模块:
"use strict";
import * as _config from './config';
import * as _db from './db';
import * as _storage from './storage';
export var config = _config;
export var db = _db;
export var storage = _storage;
如果在我的主要项目中我包含这样的库
import * as lib from 'lib';
console.log(lib);
我可以看到正确的输出并且它按预期工作 { config: ... }
。但是,如果我尝试像这样包含库:
import lib from 'lib';
console.log(lib);
它将是 undefined
。
有人可以解释这里发生了什么吗?这两种导入方法不应该是等价的吗?如果不是,我缺少什么区别?
原文由 left4bread 发布,翻译遵循 CC BY-SA 4.0 许可协议
正在请求一个对象,其中包含“lib”的所有命名导出。
被命名为导出,这就是为什么你最终得到一个像你一样的对象。
要求
default
导出lib
。例如
将使
lib === 4
。它不获取命名的导出。要从默认导出中获取对象,您必须明确执行