节点要求()与ES6导入:为什么这个例子不起作用

node require() versus es6 import: why doesn't this example work

本文关键字:为什么 不起作用 导入 ES6 节点      更新时间:2023-09-26

ES6 不是替换 node 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';