使用ts-node命令运行ts文件时报错(Warning: To load an ES module, set “type“: “module“ in the package.json...)

这篇具有很好参考价值的文章主要介绍了使用ts-node命令运行ts文件时报错(Warning: To load an ES module, set “type“: “module“ in the package.json...)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 ts-node 运行TS文件时报错。

错误信息1:

E:\PersonalProject\ts-utils\test>ts-node DateChainTest.ts
(node:22636) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
E:\PersonalProject\ts-utils\test\DateChainTest.ts:1
import { DateChain } from '../src/DateChain';
^^^^^^

SyntaxError: Cannot use import statement outside a module

......

错误信息2:

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for E:\PersonalProject\ts-utils\test\DateChainTest.ts
    at new NodeError (node:internal/errors:371:5)
    at Loader.defaultGetFormat [as _getFormat] (node:internal/modules/esm/get_format:71:15)
    at Loader.getFormat (node:internal/modules/esm/loader:105:42)
    at Loader.getModuleJob (node:internal/modules/esm/loader:243:31)
    at async Loader.import (node:internal/modules/esm/loader:177:17)
    at async Object.loadESM (node:internal/process/esm_loader:68:5)
    at async handleMainPromise (node:internal/modules/run_main:63:12) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

ts-node 版本:^10.8.0typescript 版本:^4.6.3

tsconfig.json文件内容如下

{
  "compilerOptions": {
    "baseUrl": "./",
    "module": "es6",
    "target": "es2020",
    "allowJs": false,
    "declaration": true,
    "outDir": "./dist",
    "strict": true
  },
  "exclude": [
    "node_modules"
  ],
  "include": [
    "index.ts",
    "src/*"
  ]
}

在网上查找了一些资料,出现类似问题的有很多,链接如下:

  • http://www.longant.cn/en/node/7289
  • https://stackoverflow.com/questions/62096269/cant-run-my-node-js-typescript-project-typeerror-err-unknown-file-extension
  • https://www.npmjs.com/package/ts-node?activeTab=readme#commonjs

其中主要有以下几种解决方式:

方法1:

  1. package.json中设置"type"属性为"module"
  2. 再将tsconfig.json中的compilerOptionsesModuleInterop属性值置为true
尝试结果:失败,报错信息内容如错误信息2所示

方法2:文章来源地址https://www.toymoban.com/news/detail-604574.html

  1. package.json中移除"type": "module"
  2. tsconfig.json中将compilerOptionsmodule属性改为"CommonJS",或者在该文件中添加"ts-node"配置项。
{
  /* ... your props ... */
  "ts-node": {
    "compilerOptions": {
      "module": "CommonJS"
    }
  }
}
尝试结果:成功,问题解决!!!

到了这里,关于使用ts-node命令运行ts文件时报错(Warning: To load an ES module, set “type“: “module“ in the package.json...)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包