如何使用带连字符的ES6导入

时间:2015-11-05 18:54:31

标签: javascript ecmascript-6

我真的不知道如何做到这一点,也不知道如何google。

现在我有了这个

let source = require('vinyl-source-stream');

我想改为导入,但这不起作用

import {'vinyl-source-stream' as source} from 'vinyl-source-stream';

2 个答案:

答案 0 :(得分:2)

如果该模块甚至支持ES6导入/导出系统,那么你想要的是:

import source from 'vinyl-source-stream';

您的版本正在尝试从模块导入名为 vinyl-source-stream的导出值;相反,您只需要导入模块本身(在这种情况下导入名为source的对象)。

如果您希望导入模块中的所有内容,而不是仅使用默认导出,请改用:

import * as source from 'vinyl-source-stream';

但如果模块实际上没有用来使用新系统,那么这些都不会起作用。

答案 1 :(得分:0)

此库不使用ES2015模块系统。它根本不是export,因此您不能import或来自它。

此库使用CommonJS模块模式(可以看作是in the source),并且应该是require

你可以import图书馆:

import form 'vinyl-source-stream';

这将导致代码被执行,但在这种情况下这将是无用的,因为没有任何(有用的)会发生 - 实际上,由于未定义module,您可能会得到运行时异常。