【问题标题】:How to use ES6 import with hyphen如何使用带连字符的 ES6 导入
【发布时间】:2015-11-06 04:04:20
【问题描述】:

我真的不知道该怎么做,也不知道怎么用谷歌搜索。

我现在有这个

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

我想改成 import 但这不起作用

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

【问题讨论】:

  • 'vinyl-source-stream' 看起来像什么?即,它会在没有连字符的情况下工作,所以连字符真的是这里的问题吗?

标签: javascript ecmascript-6


【解决方案1】:

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

import source from 'vinyl-source-stream';

您的版本正在尝试从模块中导入导出的值命名 vinyl-source-stream;相反,您只想导入模块本身(在本例中导入名为 source 的对象)。

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

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

但如果模块实际上不是为了使用新系统而编写的,那么这些都不会起作用。

【讨论】:

    【解决方案2】:

    这个库不使用 ES2015 模块系统。它根本不是export,所以你不能import它或来自它。

    这个库使用 CommonJS 模块模式(可以看到 in the source),并且是 requireed。

    你可以import图书馆:

    import form 'vinyl-source-stream';
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      • 1970-01-01
      • 2017-09-24
      • 2017-01-20
      • 2019-10-22
      • 1970-01-01
      相关资源
      最近更新 更多