节点require()与es6 import:为什么这个例子没有工作

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

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

这工作如广告。 我只能使用sprintf()。 我想用ES6导入语句完成相同的操作:

import sprintf from 'sprintf-js';

这不起作用。 为什么不? 我该如何解决? 奖励点,如果你可以解释如何出口在sprintf-js内工作。

您可以通过多种方式访问​​模块导出。 请参阅MDN文章。

 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';