У меня есть node.js библиотека lib
написана в ES6 (скомпилирован с Babel), в котором я экспортировать следующие подмодули:Разница между импортом X и импортом * как X в node.js (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
.
Может кто-нибудь объяснить, что здесь происходит? Не эквивалентны ли эти два метода импорта? Если нет, то какая разница, я не хватает?
только что нет 'импорта {...} ... от ...' синтаксиса – Bergi
отредактирована. Вы правы, нет оператора распространения для {...}, я должен был использовать и т. Д. Вместо этого. – tgrrr
(Разумеется, синтаксиса с распространением/отдыхом не существует, поскольку это не объект литерала/деструктурирования). Тем не менее в импорте нет синтаксиса '{...} as ...', поэтому «* совпадает с *» не имеет смысла. (Я не думаю, что вы имели в виду "* производит ту же синтаксическую ошибку, что и" ") – Bergi