首页 > 其他分享 >typescript修改target导致模块找不到

typescript修改target导致模块找不到

时间:2024-02-19 13:56:43浏览次数:35  
标签:node 选项 typescript target es6 module 模块 moduleResolution

编译ts代码时,发现一个包只支持es6及更高的版本,无奈修改编译选项target,从es5修改为es6,发现原来导入包的地方报错,提示not found。

tsconfig.json

{
"files": [
"src/main.ts"
],
"compilerOptions": {
"noImplicitAny": true,
"target": "es5"
}
}

改为es6后报错

解决办法

增加moduleResolution选项  值为node

增加module选项 值为CommonJS

{
"files": [
"src/main.ts"
],
"compilerOptions": {
"noImplicitAny": true,
"target": "es6",
"moduleResolution": "node",
"module": "CommonJS"
}
}

 

原因是当target为es5时,如果没有指定module选项 则默认值为commonjs

没有指定moduleResolution选项时,默认值是node

这种情况下编译出来的模块是commonjs方式的,也就是node环境下执行的代码

模块导入方式也是node方式导入的。

修改为es6时,module选项的值会默认为ES6,moduleResolution选项的值默认

为Classic,则此时导入包的方式就会找不到包,详情可以查看ts指南中模块解析

章节查看。所以需要手动指定moduleResolution选项为node,如果代码执行环境

为node还需要指定module为commonjs。

module和moduleResolution选项使用默认值时的规则:

 

会根据targe选项的值发生相应的变化。

 

 

 

 

 

 

标签:node,选项,typescript,target,es6,module,模块,moduleResolution
From: https://www.cnblogs.com/womeng/p/18020932

相关文章

  • Python模块之warnings
    模块作用简介:warnings模块由PEP230引入,作为一种警告程序员关于语言或库功能的变化的方法,以预测Python3.0带来的向后不兼容的变化。它还可用于报告从丢失的库中恢复的配置错误或功能退化。不过,最好是通过logging模块提供面向用户的消息,因为发送到控制台的警告可能丢失。......
  • JS模块化系统
    随着JavaScript开发变得越来越广泛,命名空间和依赖关系变得越来越难以处理。人们已经开发出不同的解决方案以模块系统的形式来解决这个问题。CommonJS(CJS)CommonJS是一种同步加载模块的规范,主要用于服务器端的Node.js环境。//模块导出module.exports={//模块内容......
  • Swoole 源码分析之 Http Server 模块
    首发原文链接:Swoole源码分析之HttpServer模块Swoole源码分析之HttpServer模块Http模块的注册初始化这次我们分析的就是Swoole官网的这段代码,看似简单,实则不简单。在Swoole源码文件swoole_http_server.c中有这样一个函数php_swoole_http_server_minit。这个......
  • BOSHIDA DC电源模块的节能与环保设计策略
    BOSHIDADC电源模块的节能与环保设计策略DC电源模块的节能与环保设计策略可以从以下几个方面考虑: 1.高效率设计:设计高效率的电源转换器可以减少能量损耗,并最大限度地利用电能。使用高效率的功率开关器件、优化电路拓扑和控制算法,可以降低能量转换过程中的能量损失。2.低功......
  • HFM所有权管理模块
    通常情况,合并的组织架构是基于父子关系的树状结构,甚至是父子孙结构甚至更多,在我经历过的项目,最多有7个层级,对于合并到父级的数据,有全资子公司,有部分合并的,合并的比例是多少,抵消的比例是多少,可以通过所有权管理模块进行控制hfm系统设置了两个账户来记录对子公司的控制,pcon,pown,翻译......
  • VSCOde+Nodejs+Typescript前端开发环境
    1.安装Node.js下载地址:https://nodejs.org/enlts版本:长久稳定版本安装:默认安装就可以了验证:node2.VSCode下载地址:https://code.visualstudio.com/Download安装:默认安装语言切换:安装中文插件,重启 2.1修改终端cmd模式:1.点击设置图标,选择CommandPalette 2.输入:Ter......
  • 模块使用
    模块用于组织实用函数、常量和其他在React应用程序的不同部分使用的共享代码。在应用程序中使用模块可以促进干净且可维护的代码结构,从而更容易理解、测试和扩展应用程序。ES6模块系统以及webpack或Parcel等工具有助于在Web应用程序中捆绑和高效加载这些模块。......
  • python基础学习6-第三方模块
    自定义模块优先级大于系统模块模块分为系统模块,自定义模块,第三方模块导入方式import模块名称[as别名]from模块名称import变量/函数/类*包的导入import包名.模块名as别名form包名import模块名as别名form包名.模块名import函数/变量/类*主程序运行i......
  • 关于extern和模块化编程全局变量、函数、对象不同源文件之间的使用说明
    extern的使用在C语言中,extern关键字用于在多个源文件之间声明全局变量、函数或对象,实现模块间的交互和数据共享。即告诉编译器该变量或函数是在其他源文件中定义的,并且可以在当前源文件中使用。而局部函数的作用域限定在其定义所在的作用域内,无法被其他源文件直接访问或调用。因......
  • 第24天:安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制
    #文件管理模块-上传-过滤机制1、无过滤机制2、黑名单过滤机制3、白名单过滤机制4、文件类型过滤机制 $_FILES:PHP中一个预定义的超全局变量,用于在上传文件时从客户端接收文件,并将其保存到服务器上。它是一个包含上传文件信息的数组,包括文件名、类型、大小、临时文件名等信息......