Node.js 是否有方法使用';从此节点模块导入;导入&x27;而不是';需要';?
我正在使用这个节点模块'deep-equal'(),到目前为止,我能够访问其中函数的唯一方法是使用Node.js 是否有方法使用';从此节点模块导入;导入&x27;而不是';需要';?,node.js,npm,import,export,require,Node.js,Npm,Import,Export,Require,我正在使用这个节点模块'deep-equal'(),到目前为止,我能够访问其中函数的唯一方法是使用var-equal=require('deep-equal'),如文档中所建议。我通常使用import而不是require,我想知道是否可以在这个模块中使用import。主要功能从此行中的文件导出: var deepEqual = module.exports = function (actual, expected, opts) {...} 是否可以使用import导入此功能,或者仅使用requ
var-equal=require('deep-equal')代码>,如文档中所建议。我通常使用import
而不是require
,我想知道是否可以在这个模块中使用import
。主要功能从此行中的文件导出:
var deepEqual = module.exports = function (actual, expected, opts) {...}
是否可以使用import
导入此功能,或者仅使用require
导入此功能
谢谢 是的,你确实可以
如果您使用的是nodejs LTS
,那么在运行节点
进程时,您必须对使用导入
并传递实验模块
标志的文件使用.mjs
扩展名
// foo.mjs
import equal from 'deep-equal';
node --experimental-modules foo.mjs
从nodejs 12.3.0开始
您只需通过实验模块
。从
一旦启用,Node.js将以下内容作为初始输入传递给Node时,或当ES模块代码中的导入语句引用时,将视为ES模块
您还可以在包中指定类型
为模块
。json
:
// package.json
{
"type": "module"
}
来自文档
当最近的父package.json文件包含值为“module”的顶级字段“type”时,以.js或.mjs结尾的文件或缺少任何扩展名的文件将作为ES模块加载
您好@1556089774,谢谢您提供的信息。为什么你不能在没有其他东西的情况下,用“从‘深度相等’导入相等”的常规方法导入它呢?该功能具有实验性标志。简言之,不支持stableSorry我的意思是,模块的编写方式是什么,使用“var deepEqual=module.exports=function(actual,expected,opts){…}”,这使得您不能使用“import equal from'deep equal'”导入,如果模块像“export default deep equal{…}”那样编写,您可以使用这种方式导入在我的机器上进行了测试,带有实验标志的导入工作正常。var deepEqual=module.exports=这只是将module.exports对象指定给deepEqual,现在它们引用了同一个对象,即“这只是将module.exports对象指定给deepEqual”等等:为什么这样就可以使用“var deep=require('deep-equal')”而不是“import{deep}”从“deep equal”导入?