相关疑难解决方法(0)

导入X和导入*之间的差异为node.js中的X(ES6/Babel)?

我有一个lib用ES6编写的node.js库(用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;
Run Code Online (Sandbox Code Playgroud)

如果从我的主项目中我包含这样的库

import * as lib from 'lib';
console.log(lib);
Run Code Online (Sandbox Code Playgroud)

我可以看到正确的输出,它按预期工作{ config: ... }.但是,如果我尝试像这样包含库:

import lib from 'lib';
console.log(lib);
Run Code Online (Sandbox Code Playgroud)

它会undefined.

有人能解释一下这里发生了什么吗?这两种导入方法不应该是等价的吗?如果没有,我错过了什么区别?

javascript node.js ecmascript-6 babeljs

29
推荐指数
2
解决办法
2万
查看次数

何时使用"import*as Foo"与"import Foo"?

我正在将BackboneJS(v1.2.2)项目转换为ES6 w/BabelJS.

我注意到以下两者之间存在差异:

import Backbone from 'backbone'
Run Code Online (Sandbox Code Playgroud)

import * as Backbone from 'backbone'
Run Code Online (Sandbox Code Playgroud)

看完这里我了解到,前者是进口骨干的默认出口那里,因为后者可以让我"导入整个模块,并通过属性的符号是指其命名为出口."

我很难理解这些之间的区别.在两个实例中都返回对象,但前者似乎使用其他属性/方法进行修饰.至少我认为导入"整个模块"将有更多的属性/方法......但我看到相反的情况.

javascript import ecmascript-6

15
推荐指数
1
解决办法
5706
查看次数

标签 统计

ecmascript-6 ×2

javascript ×2

babeljs ×1

import ×1

node.js ×1