esm问题

两个关于模块配置项

compilerOptions.module 决定tsc打包模块后的输出,如esm或cjs

compilerOptions.moduleResolution 影响的是在执行node xxx.ts时候 模块解析过程,用在运行时

import cjs包冲突怎么办

当通过 esm 使用到node 内置模块的时候,import path from "node:path"; 可能会报错类似于 :

模块 ""node:path"" 只能在使用 "esModuleInterop" 标志时进行默认导入ts(1259)
path.d.ts(191, 5): 此模块是使用 “export =” 声明的,只能在使用“esModuleInterop”标志时用于默认导入

只需要打开此项即可 compilerOptions.esModuleInterop,作用就是处理cjs于esm冲突

esm和tsc要求冲突

esm要求导入文件必学携带后缀,但是 tsc 要求你在 ts 文件中不能携带后缀。

临时的解决方案是 “源码虽然是 esm+ts,但是导入的时候不写后缀,并将打包后的输出 compilerOptions.module 配置为 cjs (既默认值)”

或者你使用 webpack 或者 vite 或者 esbuild 更完整的搭建工具链,从而生成你需要的构建结果

直接运行ts

在node v23的时候已经直接支持直接运行ts文件 node test.ts,但是再此版本之前:

  • 你需要借助tsc
  • 如果你不想显式编译,而是直接运行 可以借助于 ts-node、tsx,
  • 如果你还需要热更新 可以考虑 ts-node-dev 或者 nodemon+tsx等方案

推荐 tsx,因为现阶段 ts-node已经摆烂了

短路径(别名)

推荐此包 tsc-alias

ts 运行时和打包问题的更多相关文章

  1. 优化单页面开发环境:webpack与react的运行时打包与热更新

    前面两篇文章介绍初步搭建单页面应用的开发环境: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-router实现单页面应用路由 这 ...

  2. 【python】python打包生成的exe文件运行时提示缺少模块

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyin ...

  3. sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类

    sbt打包Scala写的Spark程序,打包正常,提交运行时提示找不到对应的类 详述 使用sbt对写的Spark程序打包,过程中没有问题 spark-submit提交jar包运行提示找不到对应的类 解 ...

  4. Hadoop打包成jar包在集群上运行时出现的各种问题以及解决方案

    之前将eclipse下编好的mapreduce代码放到集群上面跑,发现速度很慢,namenode节点的cpu和内存使用率很低,datanode节点基本上处于没有运行的状态,然后通过查看hadoop-e ...

  5. qiankun 2.x 运行时沙箱 源码分析

    简介 从源码层面详细讲解了 qiankun 框架中的 JS 沙箱 和 样式沙箱的实现原理. 序言 沙箱 这个词想必大家应该不陌生,即使陌生,读完这篇文章也就不那么陌生了 沙箱 (Sandboxie) ...

  6. Unity运行时检测Altas使用情况

    UI贴图在游戏中内存大小中占的分量非常非常大,尤其对于前期对UI没有规划的项目,无论是包量还是内存大小都是需要花费很多时间去优化.如果涉及到战斗场景和逻辑场景的情况下,常用的做法就是把两个场景使用的a ...

  7. java虚拟机运行时乱码问题

    问题: Android端通过socket发送文本到windows,windows调用系统剪切板进行粘贴的操作,java服务端在eclipse下直接运行粘贴的文本无乱码,打包jar后粘贴的文本乱码. 解 ...

  8. iOS运行时 -- Runtime(摘抄自网络)

    运行时(iOS) 一.什么是运行时(Runtime)? 运行时是苹果提供的纯C语言的开发库(运行时是一种非常牛逼.开发中经常用到的底层技术) 二.运行时的作用? 能获得某个类的所有成员变量 能获得某个 ...

  9. iOS开发——底层OC篇&运行时常用

    运行时常用 什么是Runtime(前面的文章已经说的很清楚了,这里就简单的介绍一下) 我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething]; ...

  10. .NET中 类型,对象,线程栈,托管堆在运行时的关系

    .NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and T ...

随机推荐

  1. 在 Idea 中使用 Git

    以 git-2.21.0 为例说明安装步骤: 双击 Git-2.21.0-64-bit.exe 点击 Next 设置安装路径 点击 Next 点击 Next 点击 Next,选择默认的编辑器 点击 N ...

  2. jmeter性能测试案例:电商系统并发订单测试

    场景描述:本案例主要实现多用户同时提交订单,以检测系统对瞬时压力的响应情况.具体流程包括用户登录-添加商品-提交订单.涉及多个接口联动和参数处理,步骤如下: 第一步,登录用户 1.新建"下订 ...

  3. Sentinel源码—4.FlowSlot实现流控的原理

    大纲 1.FlowSlot根据流控规则对请求进行限流 2.FlowSlot实现流控规则的快速失败效果的原理 3.FlowSlot实现流控规则中排队等待效果的原理 4.FlowSlot实现流控规则中Wa ...

  4. 什么是 Java 中的常量池?

    Java 中的常量池 Java 中的常量池(Constant Pool)是用于存放程序中常量(如字符串.数字.类.方法等)的内存区域.常量池的主要作用是提高内存的使用效率和性能,避免重复创建相同的常量 ...

  5. Intellij, target JRE vesion doesn't match project jdk version

    gradle 项目修改这里的gradle jvm

  6. Windows上,10分钟构建一个本地知识库

    这篇文章是我约新书<RAG应用实战>的一个样章,基于阿里云代码构建的一个本地RAG服务. 本地模型看代码注释,需要替换几行代码. 阅读本章时,已默认安装你的个人电脑上安装了Python 3 ...

  7. [护网必备]2018年-2024年HVV 6000+个漏洞 POC 合集分享

    此份poc 集成了Zabbix.用友.通达.Wordpress.Thinkcmf.Weblogic.Tomcat等 下载链接: 链接: 6000+Poc下载

  8. ceph存储介绍

    一.ceph简介 ceph是一个开源的.统一的分布式存储系统,设计初衷是提供较好的性能.可靠性和可扩展性.其中"统一"是说ceph可以一套存储系统同时提供块存储设备.文件系统存储和 ...

  9. Django踩坑之在Django中创建项目时ImportError: No module named django.core

    不使用django-admin.py,而是使用django-admin.exe 具体操作如下 django-admin.exe startproject learning_log . ok,没有提示错 ...

  10. RabbitMQ学习笔记【长更】

    文章发表在了我的博客上:https://blog.ysboke.cn/archives/64.html 一.MQ作用 就仨:异步.削峰.解耦 1.任务异步处理 将不需要同步处理的并且耗时长的操作由消息 ...