首页 > 编程语言 >[转]使用ts-node运行ts脚本以及踩过的坑

[转]使用ts-node运行ts脚本以及踩过的坑

时间:2024-10-12 09:21:23浏览次数:1  
标签:node 脚本 ts module 报错 data

原文地址:使用ts-node运行ts脚本以及踩过的坑 - 不作声 - 博客园

-----------------------------------------------------

我碰到的情况:

跟着下面的案例学习ts

快速上手 TypeScript | Vue3 入门指南与实战案例

npm安装ts-node,package.json启动脚本"dev:esm": "node src/esm/index.mjs"

运行 npm run dev:ts 报错SyntaxError: Unexpected token 'export'

搜索引擎搜索,有的说node版本低,升级版本,无效

又有说package.json里增加"type": "module",加上,原报错没有了,但又有新报错TypeError: Unknown file extension ".ts" for

最后找到了下面这篇文章,将运行脚本改为 "dev:ts": "node --loader ts-node/esm src/ts/index.ts",可以正常运行了,只是报告了一个警告,不影响使用

 

-----------------------------------------------------

应用场景

在代码日常中,经常会需要写各种脚本,今天使用ts写了个脚本,运行的时候各种报错,还是决定写下来。

运行ts脚本需要一个库ts-node,这个库不能全局安装,否则会报错。

yarn add -D ts-node
# 或者
npm i ts-node -D

使用

安装好后开始添加配置项:

  • ts.config.json中添加配置"module": esnextes2005
  • package.json中添加配置"type":"module"
  • 在文件中的import语句中「包含文件扩展名」,如import data from './data'改为import data from './data.js',另外.ts后缀也要改为.js

然后就可以使用命令行命令运行ts脚本。

node --loader ts-node/esm ./my-script.ts

报错

在这个过程中报错不少,在网上各种论坛跑来跑去,终于解决了问题。

SyntaxError: Cannot use import statement outside a module

无法在模块外使用import,解决这个问题需要在package.json文件中添加"type":"modules"

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\1\Desktop\my-project\data' imported from 'C:\Users\1\Desktop\get-data.ts'

找不到导入的模块,是因为没有在导入的文件中添加后缀名。

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

我收到这条报错的时候,命令行命令使用的是ts-node ./myscripts.ts,改用以下命令时,问题解决。

node --loader ts-node/esm ./my-script.ts

ReferenceError: fetch is not defined

获取数据使用了fetch库,不是标准的Nodejs方法,需要下载node-fetch

yarn add node-fetch

写在最后

虽然程序员有很多交流问题的社区论坛,但跑了一圈后发现还是在githubIssues搜索问题更高速有效,其他地方很多无效甚至答非所问的回答。

标签:node,脚本,ts,module,报错,data
From: https://www.cnblogs.com/dirgo/p/18459820

相关文章

  • 【gpt搬运】bash脚本压缩png,jpg图片,当图片大小大于100kb的时候
    可以编写一个Bash脚本,使用find命令查找图片文件并利用imagemagick或jpegoptim以及pngquant等工具来压缩图片。如果图片大小大于100KB,就进行压缩。下面是一个示例脚本:准备工具:安装imagemagick:用于转换图片格式安装jpegoptim:用于压缩.jpg图片安装pngquant:用于......
  • electron-vite_4使用WebContentsView快速集成已有项目
    Web嵌入官方推荐使用WebContentsView;集成也比较简单,但还是需要你单独写点东西;src/main/index.ts进行修改import{app,shell,BrowserWindow,ipcMain,nativeImage,WebContentsView,dialog}from'electron';functioncreateWindow():void{//1.创建br......
  • 基于nodejs+vue基于JAVA的城镇社区服务管理平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,城镇化进程的加快,社区服务管理面临着前所未有的挑战与机遇。传统的社区服务管理模式存在信息不透明、服务效率低、居民参与度不高等......
  • 基于nodejs+vue基于Java的超市进销存系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和商业竞争的日益激烈,超市作为零售业的重要组成部分,其管理效率和服务质量直接关系到企业的生存与发展。传统的超市进销存管理往往依......
  • 基于nodejs+vue基于Java的比亚迪汽车大数据评分系统[开题+源码+程序+论文]计算机毕业
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,大数据技术在各行各业中的应用日益广泛。汽车行业作为国民经济的重要支柱,其数据规模庞大且复杂。比亚迪作为中国新能源汽车的领军企......
  • 用包目录结构Python脚本,简陋而强大
    模块清晰易于管理,模块代码以*.py脚本呈现,方便维护和扩展。(笔记模板由python脚本于2024年10月09日18:21:52创建,本篇笔记适合喜欢Python和编程的coder翻阅)【学习的细节是欢悦的历程】Python官网:https://www.python.org/Free:大咖免费“圣经”教程《python完......
  • ECharts图表图例6
    java用eclipse软件代码:<!DOCTYPEhtml><html><head><metacharset="UTF-8"><!--引入ECharts脚本--><scriptsrc="js/echarts.js"></script><title>Inserttitlehere</title></head>......
  • 【Unity基础】Unity用脚本实现内购(IAP)
    本文介绍了如何使用脚本实现内购功能。先看下脚本,代码中根据执行过程添加了序号。usingUnityEngine;usingUnityEngine.Purchasing;usingUnityEngine.UI;namespaceSamples.Purchasing.Core.BuyingConsumables{publicclassBuyingConsumables:MonoBehaviour,......
  • 基于Uni-App的 电子书阅读器系统 可选章节阅读 微信小程序 echats图形化分析
    项目介绍随着移动互联网技术的迅猛发展和智能设备的普及,人们的阅读习惯和方式正在发生深刻的变化。传统的纸质书籍逐渐被电子书所取代,而在线电子书作为数字阅读的重要组成部分,更是受到了广泛的关注和青睐。在这样的背景下,开发一款基于Uni-App的电子书阅读器系统,不仅符合当......
  • Solution - Codeforces 622E Ants in Leaves
    首先因为\(1\)点是可以一次性到多个点的,因此不需要考虑\(1\)点的情况,而是转而分析\(1\)的每个子树的情况,最后取\(\max\)。那么对于每个子树,就有每个节点每个时刻至多存在\(1\)个点的性质了。考虑如何去求解。首先一个贪心的想法是肯定是每个蚂蚁越早到一个点越好。于......