是不是ES6替换节点require()?我有以下代码:
var sprintf = require("sprintf-js").sprintf;
这与宣传的一样。我可以使用sprintf()。我想使用ES6 import语句完成相同的操作:
import sprintf from 'sprintf-js';
这不起作用。为什么不?我该如何解决?如果您可以解释sprintf-js中的导出如何工作,则可以获得奖励。
答案 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';