报错信息:
node:internal/errors:465
ErrorCaptureStackTrace(err);
^
TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///D:/YiXun/code/ATestDemo/mml-demo/packages/plugins/xyplayer/package.json" needs an import assertion of type "json"
项目的package.json设置了
"type": "module",
import貌似不能引入json文件。
首先本来就是不能 import 一个 JSON 文件啊……
你可能是前端脚手架项目做的多了,以为啥都能 import 进来,但那其实是 Webpack/Rollup 等构建工具带来的额外能力。
ES 中倒是有一个新提案
Import Assertions
,可以导入非 JS 模块了。但只是语法上个 Modules Import 类似(注意是类似,并不完全一样),实质上两者并不是同一个语法。怎么说呢,就像 ESM 的部分命名导入和对象解构赋值一样,看起来都用了花括号,实际上是完全不同的语法。它需要你显式地声明类型,形如:
该特性于 Node.js v17.1.0+ 后支持。
注意,该提案目前尚未形成标准,只是 Chrome 率先引入了,所以基于 V8 的 Node.js 连带着可以用了而已。