请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请教老师一个问题

老师我在使用tsc编译器编译我的nodejs代码时,我想将它编译称为esm的风格。

然后在我的package.json中增加"type": “module”,但是报错了。

我检查了下,是因为ts编译后的esm模块引入都缺少.js后缀。

但是在type:module下,必须需要后缀。这个请问下老师我应该如何处理

正在回答 回答被采纳积分+3

2回答

keviny79 2021-11-20 01:28:10

我明白你的意思,唯一的解决方法就是 在 TS 源文件 import 时带上js 后缀【注意是js后缀,不是 ts后缀]   然后按照上方截图再次编译,就有js后缀了!如下:

import  data from './utils/util.js'


0 回复 有任何疑惑可以回复我~
keviny79 2021-11-20 00:28:02

ts 编译后的 esm 风格的Js 中 引入js文件可以不带js后缀,也能编译正确 ,你描述的错误可能是别的原因引起的!

按截图这样操作后,无错误,你自己试试

首先保证你的nodejs ts 源文件无编译错误,按截图 来配置 tsconfig.json 并 终端直接输入 tsc  【直接tsc 即可】//img1.sycdn.imooc.com//szimg/6197cc3d081fe3f811740692.jpg

0 回复 有任何疑惑可以回复我~
  • 提问者 hy_wang #1
    老师我的意思是说,我这个库的package.json的type:module,此时如果没有后缀无法识别呀
    回复 有任何疑惑可以回复我~ 2021-11-20 00:31:31
  • keviny79 回复 提问者 hy_wang #2
    我明白你的意思,唯一的解决方法就是 在 TS 源文件 import 时带上js 后缀【注意是js后缀,不是 ts后缀]   然后按照上方截图再次编译,就有js后缀了!如下:
    import  data from './utils/util.js'
    回复 有任何疑惑可以回复我~ 2021-11-20 01:27:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信