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

raa*_*rts 1 javascript node.js

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

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

这与广告一样有效.我可以使用sprintf().我想使用ES6 import语句完成相同的操作:

import sprintf from 'sprintf-js';

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

Bos*_*h99 8

您可以通过多种方式访问​​模块导出.请参阅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";
Run Code Online (Sandbox Code Playgroud)

在这种情况下,你的语法会工作,如果你已经分配的出口sprintfdefault; 如果您已分配sprintf给该default对象.

假设不是,正确的语法将在大括号内包含对导出方法的引用.

import { sprintf } from 'sprintf-js';
Run Code Online (Sandbox Code Playgroud)