ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION

这篇具有很好参考价值的文章主要介绍了ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

发生背景

项目里想用 ts-node 跑个脚本,执行:

$ npm install -g ts-node
$ ts-node ./scripts/html-gen.ts

代码是 TypeScript + ES Module (真香),于是 ts-node 开始抱怨:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for ...\scripts\html-gen.ts
    at new NodeError (node:internal/errors:399:5)
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:79:11)
    at defaultGetFormat (node:internal/modules/esm/get_format:121:38)
    at defaultLoad (node:internal/modules/esm/load:81:20)
    at nextLoad (node:internal/modules/esm/loader:163:28)
    at ESMLoader.load (node:internal/modules/esm/loader:605:26)
    at ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:22)
    at new ModuleJob (node:internal/modules/esm/module_job:64:26)
    at ESMLoader.#createModuleJob (node:internal/modules/esm/loader:480:17)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:434:34) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

解决方案

tsconfig.json 中添加 "ts-node": { "esm": true } 即可。

@@ -4,5 +4,8 @@
     "outDir": "dist",
     "isolatedModules": true
   },
-  "include": ["src/**/*.ts", "components/**/*.vue", "scripts/*.ts"]
+  "include": ["src/**/*.ts", "components/**/*.vue", "scripts/*.ts"],
+  "ts-node": {
+    "esm": true
+  }
 }

(如果还报错,请参考这篇文章)

发生原因

ts-node 默认将文件视为 CommonJS ,需要显式声明为 ES Module 。(个人理解)文章来源地址https://www.toymoban.com/news/detail-836307.html

参考资料

  • Troubleshooting | ts-node

到了这里,关于ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium 使用ip代理报错 unknown error: net::ERR_TUNNEL_CONNECTION_FAILED 解决办法

    在使用 selenium 框架作为爬虫框架进行内容爬取时,难免会用到 ip 代理池。第一次使用 selenium 的 --proxy-server 参数进行代理访问时,我遇到了如下报错: 在 selenium 框架中想使用 ip 代理的方式访问 url,必须先安装 selenium-wire 模块,再从 seleniumwire 导入 webdriver 后使用。否则就会

    2024年02月11日
    浏览(71)
  • 解决 npm ERR! node-sass 和 gyp ERR! node-gyp 报错问题

    如果你机器里的node版本太高,又不想卸载重新安装低版本的node,可以安装一个 NVM 版本管理工具,随时切换node版本 1.下载安装nvm:nvm for windows 2.安装nvm后在命令窗口输入命令 nvm,出现一堆提示文字后成功。 3.执行安装node版本命令 安装指定版本(以14.18.3为例) 一些nvm常用命

    2023年04月08日
    浏览(46)
  • npm install 报错 ERR! gyp ERR! node-sass python

    一、问题描述: npm install 报错 ERR! gyp ERR! ERR! stack Error: Can\\\'t find Python executable \\\"python\\\", you can set the PYTHON env variable node -v v16 node-gyp -v v3.8.0 二、可能原因 1 nodejs与sass版本不匹配(可能性最大:解决办法见三) node版本是16,sass版本是4.14。重装的node ,就好了。其他两个是调查时看到

    2024年02月03日
    浏览(58)
  • git clone 报错:fatal: unable to connect to github.com:github.com[0: x.x.x.x]: errno=Unknown err

    错误信息 原因分析: 应该使用https读数据 解决方法: 但是仍然会报错,报错信息如下: 再次解决: 使用git clone 再次拷贝项目,成功!!!

    2024年02月16日
    浏览(48)
  • npm install安装vue-element-admin报错npm ERR! -4058 enoent An unknown git error occurred的解决方案

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 很多朋友特别是对 node.js 完全不熟悉了解的,大多都是从仓库直接拉取下载项目到本地,第一时间就是想在本地启动运行项目,完全不懂直接开干,当遇到错误时就蒙了 比如当我们从远程仓库拉取

    2024年02月08日
    浏览(82)
  • npm install报错npm ERR! gyp ERR! node -v v16.18.1npm ERR! gyp ERR! node-gyp -v v3.8.0npm ERR! gyp ER

    这是 node-sass、sass-loader 安装的版本和电脑安装的 node.js 版本不兼容导致的错误 我的node.js版本是16.18.1 在项目目的package.json文件把 node-sass 和 sass-loader 的修改成如下版本,npm install 安装成功 node-sass:^6.0.1 sass-loader:^6.0.7 如果你的nodejs是其他版本,可以自行查询node-sass和sas

    2024年02月13日
    浏览(50)
  • vue3+ts中使用mitt跨组件通信报错:没有与此调用匹配的重载。handler: WildcardHandler<Record<EventType, unknown>>

    报错内容如下图: mitt代码的使用方式: mittBus.js文件: 经过多方资料查阅,总结出问题出现的原因是ts中的类型推断异常 。mittBus的参数无法推断出来。 如果使用的是最新的 mitt@3.0.0 版本,在ts中使用mitt时需要添加类型注解,去官网查阅使用方式如下: Usage : 1、Set “stri

    2023年04月22日
    浏览(89)
  • 解决k8s node节点报错: Failed to watch *v1.Secret: unknown

    现象:  这个现象是发生在k8s集群证书过期,重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错,然后运行证书检查命令看一下:   看样子是差/etc/kubernetes/pki/apiserver.crt文件。 但是从master节点scpapiserver.crt文件以

    2024年01月16日
    浏览(47)
  • 解决npm install报错 npm ERR! gyp ERR! cwd D:\Projec\xxx\node_modules\node-sass (node-sass版本问题)

    vue项目换电脑后npm install发现一直报如下的错误: node-sass版本不兼容,比较老。还出现找不到python路径的错误。node-sass 需要 node-gyp安装时需要进行转译所以可能会出现各种按安装问题。且node-sass 本身就已经是deprecated状态了。如果不是维护老项目不建议再使用 由于它只用于开

    2024年02月09日
    浏览(67)
  • npm安装报错:npm ERR! code EPERMnpm ERR! syscall mkdirnpm ERR! path D:\nodejs\node_cache\_cacachenpm ERR

    安装node.js配置完成后,安装测试报错以下内容: npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path D:nodejsnode_cache_cacache npm ERR! errno -4048 npm ERR! Error: EPERM: operation not permitted, mkdir \\\'D:nodejsnode_cache_cacache\\\' npm ERR!  [Error: EPERM: operation not permitted, mkdir \\\'D:nodejsnode_cache_cacache\\\'] { npm ERR!  

    2024年03月19日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包