首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >File:///path/to/data.json“模块”TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]:模块“需要"json”类型的导入断言

File:///path/to/data.json“模块”TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]:模块“需要"json”类型的导入断言
EN

Stack Overflow用户
提问于 2022-07-07 19:05:23
回答 1查看 1.3K关注 0票数 1

我试图在nodejs中导入JSON。

代码语言:javascript
运行
复制
// tsconfig.json

...
  "lib": ["es2022"],
  "target": "es2022",
  "module": "nodenext",
  "moduleResolution": "node",
...
  "resolveJsonModule": true,
...

// .swcrc.json

...
  "target": "es2022",
...
  "module": {
    "type": "nodenext",
...

然后,当我编译它并运行"start": "NODE_ENV=production node --es-module-specifier-resolution=node --experimental-json-modules --no-warnings lib/index.js"时,就会得到TypeError [ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "file:///path/to/data.json" needs an import assertion of type "json"

我接着补充:

代码语言:javascript
运行
复制
import data from './data.json' assert {type: 'json'}

console.log(data)

然后打开编译后的代码,我可以看到:

代码语言:javascript
运行
复制
import data from"./data.json";console.log(data);
//# sourceMappingURL=index.js.map

此时,我想也许是SWC没有编译断言?

然后我运行tsc --emitDeclarationsOnly,在这里我得到了Import assertions are not allowed on statements that transpile to commonjs 'require' calls.,我不知道为什么公共程序和它有任何关系,我在任何地方都不使用commonjs,对吗?

另外,我使用节点18。

我做错了什么?我只是想进口那个json。

编辑:好的,TS中断的原因是因为缺少"include": ["src/**/*.ts", "src/**/*.json", "types.d.ts"],。在加上它现在起作用之后。不幸的是,SWC仍然给出了相同的错误,所以我无法运行它。

EN

回答 1

Stack Overflow用户

发布于 2022-07-07 20:16:07

终于弄明白了。在.swcrc.json中有一个实验性的选项,允许您告诉它保留断言。

代码语言:javascript
运行
复制
// .swcrc.json

...
"jsc": {
  "experimental": {
    "keepImportAssertions": true
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72903040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档