当前位置: 首页 > news >正文

ts-node 报错 ERR_UNKNOWN_FILE_EXTENSION

问题

  有个monorepo项目,在最外层一次性打包 3 个项目的脚本已经成功实现,如下:

"build:test": "cross-env NODE_ENV=test vite build --mode test && esno ./build/script/postBuild.ts",
"build:prod": "cross-env NODE_ENV=production vite build --mode production && esno ./build/script/postBuild.ts",

        为了防止提交错误,我想新增一个自动上传的脚本,但是~遇到了一个非常棘手的问题,我写了一个 deploy 脚本,希望实现半自动化实现 Vue 项目的上传ftp,在 script 中进行配置:

"deploy:test": "cross-env NODE_ENV=test ts-node ./deploy/index.ts",
"deploy:prod": "cross-env NODE_ENV=production ts-node ./deploy/index.ts",

         结果报错:

e6649c84297f45fd882b8108cc97849a.png

解决   

     在网上寻找了很多很多很多种解决方案,最终发现, 只要在 package.json 文件中将 【"type": "module"】删除,问题就解决了。

新的问题

        但是呢,新的问题出现了,项目跑不动了呀!【"type": "module" 】删除后,项目它就跑不动了!!!

a6d847ed178f4daf9c5cccc2b3769117.png

矛盾点

        这是非常矛盾的地方:

1、如果我把 package.json 中的 "type": "module" 删掉,那么就跑不动,也 build 不了,但是能 deploy 成功。

2、如果不删掉  "type": "module" ,那么就可以跑也可以 build,但是却无法 deploy。

最终解决方案

 package.json 中的 "type": "module", 依然保留,然后进行以下操作进行解决

① 修改 tsconfig.json

        在 tsconfig.json 文件中添加以下代码:

  "ts-node": {"transpileOnly": true,"files": true,"esm": true},"compilerOptions": {//配置编译选项"target": "ESNext","module": "ESNext","useDefineForClassFields": true,"moduleResolution": "node",// ......其他配置}

②修改 package.json

        在 package.json 中添加以下代码:

"deploy:test": "cross-env NODE_ENV=test node --loader ts-node/esm ./deploy/index.ts",
"deploy:prod": "cross-env NODE_ENV=production node --loader ts-node/esm ./deploy/index.ts",

这样就解决了问题!

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • XXE-lab-master靶场:PHP_xxe
  • 【生成式人工智能-三-promote 神奇咒语RL增强式学习RAG】
  • 记录|MVS和VM软件使用记录
  • 学习日志8.5--ARP攻击与防范
  • 深入探索Scikit-Learn聚类分析:方法与实践
  • OLAP技术与数据仓库:深度分析与决策支持
  • day_32
  • 中国区域创新能力评价报告数据(2001-2023年)
  • 356_lambda表达式,多段调用,A函数调用lambda-1,然后lambda-1中调用lambda-2
  • 杂谈c语言——3.内存对齐
  • LangChain与JWT:构建安全认证的桥梁
  • idea中修改项目名称
  • 红黑树的概念和模拟实现[C++]
  • 梧桐数据库(WuTongDB):数据库技术中 MetaData 和 Catalog 的区别和联系
  • 算法--初阶
  • 深入了解以太坊
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Android组件 - 收藏集 - 掘金
  • git 常用命令
  • JAVA多线程机制解析-volatilesynchronized
  • markdown编辑器简评
  • MobX
  • python docx文档转html页面
  • Zepto.js源码学习之二
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 不上全站https的网站你们就等着被恶心死吧
  • 分布式事物理论与实践
  • 机器学习中为什么要做归一化normalization
  • 跳前端坑前,先看看这个!!
  • ionic异常记录
  • ​卜东波研究员:高观点下的少儿计算思维
  • #Linux(Source Insight安装及工程建立)
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (4)STL算法之比较
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (LeetCode) T14. Longest Common Prefix
  • (二)hibernate配置管理
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (十三)Maven插件解析运行机制
  • (十三)MipMap
  • (一)kafka实战——kafka源码编译启动
  • (转)Oracle存储过程编写经验和优化措施
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • . Flume面试题
  • ./和../以及/和~之间的区别
  • .net core 的缓存方案
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET 命令行参数包含应用程序路径吗?
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .Net小白的大学四年,内含面经
  • @Repository 注解
  • @synthesize和@dynamic分别有什么作用?