ts-node报错ERR_UNKNOWN_FILE_EXTENSION

news2024/11/16 0:27:37

问题

  有个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",

这样就解决了问题!

需要的依赖

  "dependencies": {
    "@types/lodash": "^4.17.0",
    "ftp-deploy": "^2.4.7",
    "inquirer": "^10.1.5",
    "lodash-es": "^4.17.21"
  },
  "devDependencies": {
    "@types/node": "^20.11.19",
    "ts-node": "^10.9.2",
    "typescript": "^5.4.5",
    "husky": "^8.0.0",
    "cross-env": "^7.0.3",
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988679.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一行代码实现图片懒加载?分享 1 段优质 HTML 代码片段!

本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿! 大家好,我是大澈! 本文约 700 字,整篇阅读约需 1 分钟。 今天分享一段优质 HTML 代码片段,只需一行代码…

MBD软件开发之数据管理

模块化开发中,模型集成和代码集成是很多工程师非常关心的问题。 常见的代码集成方式有两种,一是单元级模型上生成代码,在代码上做集成,一是模型集成之后,再去生成集成级别的代码。无论采用哪种方式,模型级…

网络端口转发

一. 如图网络拓扑 光猫改桥接之前光猫自身也会有一层局域网,光猫ip为局域网额的192.168.1.1 当改桥接之后,只有一层路由器的局域网,路由器为局域网的192.168.31.1 此时从公网对内网进行访问时,先访问到路由器的公网ip的某个端口…

从零开始搭建监控系统 (二)

从零开始搭建监控系统 (二) 监控系统架构 部署 文件目录 rootchuango:/opt/prometheus# tree -L 1 . ├── docker-compose.yml ├── grafana_data ├── grafana.ini ├── prometheus_data └── prometheus.yml # grafana_data, prometheus_data 2个文件为空目录do…

下载安装ansible后,缺失pyyaml,pip安装时又出错,升级时又由于时Python2.7,不好升级遇到的一系列问题。

经过上一篇文章,我虽然误删了CentOs自带的python和yum,但是我重新将他们恢复了。这里记住默认的python版本是2.7.5。 我使用yum安装好ansible后,检查我的ansible版本的时候,发生了错误,提示没有yaml模块。 1 验证ans…

js事件循环机制(宏微任务队列都是先进先出)

文章目录 1.什么是事件循环2.主线程、任务队列、同步任务、异步任务、微任务、宏任务(1)主线程(2)同步任务(3)异步任务(微任务、宏任务)(4)任务队列 3.执行流…

乔布斯对产品,团队,人才的理解

乔布斯的设计理念和管理理念是他领导Apple取得成功的核心因素。以下是对他在产品设计和团队管理方面理念的详细描述 乔布斯的设计理念 1. 简约主义 简洁与直观:乔布斯强调设计的简约性。他相信产品应该尽可能简单且易于使用,去除一切不必要的复杂性。例如…

AIoT新技术融合基础设计课程开发与运营案例分析

本文来自下面的论文的第4部分:《Research on Basic Engineering Design Course Development and Application of New Technology AIoT (Artificial Intelligence of Things) Convergence Education》,作者是Yunja Hwang,来自韩国檀国大学工学…

IDEA左下角不显示本地修改的localChanges信息-git

IDEA左下角不显示本地修改的localChanges信息-git 取消勾选这个

【RTT-Studio】详细使用教程十:TM1638驱动数码管

文章目录 一、简介二、TM1638地址组三、TM1638的两种数码管使用方式四、TM1638数据格式五、按键扫描和键扫复用六、完整代码 一、简介 TM1638是深圳市天微电子有限公司设计的一款带键盘扫描接口的LED(发光二极管显示器)驱动控制专用芯片,内部…

React18+Vite+Eectron从入门到实战系列之一环境安装篇

如果我们的技术栈是react,也想要用electron来开发一个桌面的多端应用该怎么做呢?这篇文章选择了react的技术栈,讲解了环境的初始化步骤 实现效果 步骤 创建 react 项目 npm create vitelatest my-react-app安装依赖 cd my-react-app npm i…

勒索软件、供应链攻击等带来的思考!

2023年勒索软件、供应链攻击、地缘政治冲突与黑客活动主义、国家黑客间谍与APT组织活动成为网络安全的热点话题,生成式人工智能技术的武器化更是给动荡的全球网络安全威胁态势增加了不确定性、不对称性和复杂性。 即将到来的2024年,随着网络犯罪的规模化…

基于卷积神经网络ResUnet 多模态融合实验、BraTS 3d数据集(nii.gz)4模态融合分割

1、前言 之前介绍了unet对BraTS 3d数据集的2d图片分割,实现思路如下: 1、对BraTS 3d数据集进行切片,沿着某个模态的横断面切割 2、划分数据集、包括训练集、验证集等等 3、网络训练 4、评估模型性能等等 具体的可以参考本文:…

黑丝或者白丝,都可以用LoRA(Stable Diffusion进阶篇:ComfyUI 附加网络)

前言 在学习WebUI的那些基础知识点的时候,有一个东西是每一个初学者都绕不开的大山-附加网络。 这个东西对于每一个接触Stable Diffusion的小伙伴来说就像是小学门口小卖部卖的辣条、初中课本上的涂鸦、高中数学卷解不开的最后一道大题。 学习过WebUI里Stable Di…

基础岛 - 8G显存验证书生·浦语大模型的Demo

因为以前用过LMDeploy,所以本章的内容相对熟悉。 另外,因为教程写的很详细保姆级,所以大多数情况直接复制执行命令即可。开发机的创建略过。 总体验证结论: LMDeploy的模型加载有点慢,但推理速度快,符合预…

将tsx引入vue

按钮 vue <cl-batch-btn >新增批量</cl-batch-btn> import batch from "//modules/ad/components/ uploading/batch.vue" import ClBatchBtn from "/~/crud/src/components/batch-btn"; tsx

从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化

在大数据时代&#xff0c;企业对数据的依赖程度越来越高。然而&#xff0c;随着业务的不断发展和技术的快速迭代&#xff0c;大数据平台的集群迁移已成为企业数据中台发展途中无法回避的需求。在大数据平台发展初期&#xff0c;国内数据中台市场主要以国外开源 CDH、商业化 CDP…

JVM(十二)细谈JVM类加载的各个过程以及如何修改Java原生API

本文深入探讨了Java虚拟机&#xff08;JVM&#xff09;的类加载机制&#xff0c;包括类的加载、验证、准备、解析和初始化等过程。文章首先通过几个高级面试问题引入主题&#xff0c;然后详细解释了JVM类加载的五个阶段及其重要性。接着&#xff0c;介绍了Java的三个主要类加载…

普通话测试前如何抱佛脚拿高分

全国普通话水平测试对很多大学生而言是最好拿证的考试&#xff0c;当然了对于某些专业的考生也会有更高的拿证要求&#xff0c;例如对于需要考教师资格证的同学而言。希望这篇文章可以帮助到各位考生在普通话水平测试中取得高分。 首先我们需要知道考试考什么 一、测试内容 …

M.2接口

接口分类 key-a key-b key-e key-m接口图片