【问题标题】:ES6: Import a module as a functionES6:将模块作为函数导入
【发布时间】:2018-09-28 00:44:07
【问题描述】:

我使用以下 (ES5) 代码当前导入一个模块并将其作为函数调用(其中... 代表一些参数):

var rimraf = require("rimraf")
rimraf(...)

我想在我的代码中使用 ES6 的 import,所以我尝试了以下方法:

import * as rimraf from "rimraf"
import rimraf from "rimraf"

这些是我在各个地方读到的import 的方法,但是每次我尝试调用rimraf(...) 时都会收到错误ReferenceError: rimraf is not defined

抱歉,如果我只是愚蠢,但实现我的import 的正确方法是什么?

【问题讨论】:

  • 如果你的模块不是/node_modules/目录下的包,你需要指定模块的相对路由,即import rimraf from './rimraf'
  • import rimraf from "rimraf"; rimraf(...); 应该可以正常工作。
  • 我的包在node_modules文件夹中,见github.com/isaacs/rimraf
  • 是的,它应该可以正常工作
  • 我也是这么认为的,但它似乎没有......因为在我的问题中只有 ES5 方法有效,使用@loganfsmyth 的建议时出现错误。

标签: javascript node.js import ecmascript-6 ecmascript-5


【解决方案1】:

v9.11.1 开始,节点不支持import 语法。为了使用它,您需要设置/使用 babelTypescript 之类的东西来编译。或者,您可以按照上面链接中的说明启用实验支持。

【讨论】:

  • 感谢您的回答——我正在使用 Babel(所以使用完整的 ES6)。抱歉,如果不清楚。
  • 该问题并未说明您正在使用任何预处理器。如果你是,正如你所说,我们需要一些东西来复制。
猜你喜欢
  • 2019-01-10
  • 1970-01-01
  • 2018-05-02
  • 2018-12-07
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
相关资源
最近更新 更多