我正在使用此节点模块'deep-equal'(),到目前为止,我能够访问该函数的唯一方法是使用var equal = require('deep-equal');
,如文档中所建议。我通常使用import
而不是require
,并且想知道是否可以在此模块中使用import
。主要功能是从此行的文件中导出的:
var deepEqual = module.exports = function (actual, expected, opts) {...}
是否可以使用import
导入此功能,还是只能使用require
导入此功能?
谢谢!
答案 0 :(得分:1)
是的,实际上是可以的。
如果您使用的是nodejs LTS
,则必须为使用.mjs
的文件使用import
扩展名,并在运行{时传递experimental-modules
标志{1}}过程。
node
从// foo.mjs
import equal from 'deep-equal';
node --experimental-modules foo.mjs
开始,您只需传递nodejs 12.3.0
。来自docs
启用后,Node.js在将以下内容作为ES模块传递给节点作为初始输入或被ES模块代码中的import语句引用时会将其视为ES模块
您还可以在experimental-modules
中将type
指定为module
:
package.json
来自文档
当最近的父package.json文件包含一个顶级字段“ type”,其值为“ module”时,以.js或.mjs结尾或没有扩展名的文件将作为ES模块加载。