问题
今天刷leetcode的时候,发现有些函数老是重复书写,于是单独写了一个uitls.js模块,通过import的方式导入,没想到居然报错了。
解决方案
错误警告其实已经给出了解决方案,在package.json文件中设置"type": "module"
。
所以执行一下下面的命令,默认所有配置为‘y’,从而快速生成package.json,然后修改文件即可。
npm init -y
{
"name": "leetcode",
"version": "1.0.0",
"description": "",
"main": "107. 二叉树的层次遍历 II.js",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
最后执行文件,果然就可以了,不过也还有一个warning,这是啥子实验性的东西??
问题原因
node早先只支持CommonJS的模块化方案,所以ES6的模块化特性用不了。但是在Node V13.2.0之后开始实验性的支持ESM模块化,不过需要创建package.json文件指明type类型为module。