node require()与es6 import:为什么这个例子不起作用

时间:2016-03-12 23:01:29

标签: javascript node.js

是不是ES6替换节点require()?我有以下代码:

var sprintf = require("sprintf-js").sprintf;

这与宣传的一样。我可以使用sprintf()。我想使用ES6 import语句完成相同的操作:

import sprintf from 'sprintf-js';

这不起作用。为什么不?我该如何解决?如果您可以解释sprintf-js中的导出如何工作,则可以获得奖励。

1 个答案:

答案 0 :(得分:8)

您可以通过多种方式访问​​模块导出。 See the MDN article.

import defaultMember from "module-name";
import * as name from "module-name";
import { member } from "module-name";
import { member as alias } from "module-name";
import { member1 , member2 } from "module-name";
import { member1 , member2 as alias2 , [...] } from "module-name";
import defaultMember, { member [ , [...] ] } from "module-name";
import defaultMember, * as name from "module-name";
import "module-name";

在这种情况下,如果您已将sprintf的导出分配为default,则您的语法将有效;如果您已将sprintf分配给default对象。

假设它没有,正确的语法将在大括号内包含对导出方法的引用。

import { sprintf } from 'sprintf-js';