在package.json中,我有"type": "module"
,我使用SWC编译typescript代码。在进行导入时,我使用import Example from './example'
,然后使用"start": "node --es-module-specifier-resolution=node lib/index.js"
作为脚本,这样就不必指定扩展名。这允许我使用SWC进行编译,而不需要指定扩展名,这很神奇,否则我必须在typescript中指定.js扩展名,以便编译到不同的/lib目录。
然而,当在代码库上运行tsc --emitDeclrationOnly
时,当我在tsconfig.json中有"moduleResolution": "nodenext"
时,它会出现上面的错误。它告诉我nodenext或node 16强制执行文件扩展名。这是非常烦人的,并且有点难以使用nodenext或node 16。这样做有什么原因吗?或者我错过了一些东西,可以让我轻松地告诉typescript如何自行解析扩展?
1条答案
按热度按时间vyswwuz21#
在这里看到Slebetman的回答:https://stackoverflow.com/a/65874173/132510。尝试在
import
语句中将'.js'追加到文件名后,或者将其设置为绝对导入。