tsc 抛出“TS2307:找不到本地文件的模块”

2023-11-29

我有一个使用 TypeScript 的简单示例项目:https://github.com/unindented/ts-webpack-example

Running tsc -p . (with tsc版本 1.8.10) 抛出以下内容:

app/index.ts(1,21): error TS2307: Cannot find module 'components/counter'.
components/button/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/button/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(2,22): error TS2307: Cannot find module 'shared/backbone_base_view'.
components/counter/index.ts(3,25): error TS2307: Cannot find module 'shared/backbone_with_default_render'.
components/counter/index.ts(4,27): error TS2307: Cannot find module 'shared/backbone_with_subviews'.
components/counter/index.ts(5,20): error TS2307: Cannot find module 'components/button'.

它抱怨所有本地文件的导入,如下所示:

import Counter from 'components/counter';

如果我将其更改为相对路径,它可以工作,但我不想这样做,因为它使我的生活在移动文件时变得更加困难:

import Counter from '../components/counter';

The vscode代码库不使用相对路径,但一切正常,所以我的项目中一定缺少一些东西:https://github.com/Microsoft/vscode/blob/0e81224179fbb8f6fda18ca7362d8500a263cfef/src/vs/languages/typescript/common/typescript.ts#L7-L14

你可以查看我的 GitHub 存储库,但如果它有帮助的话,这里是tsconfig.json我正在使用的文件:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "noImplicitAny": false,
    "removeComments": false,
    "preserveConstEnums": true,
    "sourceMap": true,
    "outDir": "dist"
  },
  "exclude": [
    "dist",
    "node_modules"
  ]
}

有趣的是,通过构建项目webpack using ts-loader工作正常,所以我猜这只是一个配置问题......


@vladima 回复了这个问题在 GitHub 上:

编译器解析模块的方式由 moduleResolution 选项可以是node or classic(更多的 细节和差异可以找到here)。如果省略该设置 编译器将此设置视为node如果模块是commonjs and classic- 否则。在你的情况下如果你想要的话classic模块 与使用的解决策略commonjs模块 - 你需要设置 它明确地通过使用

{
    "compilerOptions": {
        "moduleResolution": "node"
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tsc 抛出“TS2307:找不到本地文件的模块” 的相关文章

随机推荐

  • 从现在开始下一个月的 10 号?

    我正在尝试查找从今天开始的下一个月的 10 号 因此 如果今天是 5 月 27 日 那么下一个 10 日就是 6 月 10 日 例如 如果今天是 8 月 1 日 那么接下来的 10 日将是 8 月 10 日 我知道我可以使用找到下个月的第一
  • Java - 对非静态字段列表进行静态引用

    我刚刚进行了实验 发现当我运行滚动代码时 它无法编译 我不明白为什么 我的 IDE 说 无法对非静态字段列表进行静态引用 但我不太明白这是什么或为什么 它还适用于什么 即 它只是私有变量和 或方法吗 为什么 public class MyL
  • 加速度计移动的距离

    我想通过移动 iPhone 来移动 iPhone 屏幕上的对象 矩形 圆形等 例如 我沿 X 轴移动 iPhone 物体也沿 X 轴移动 Y Z轴同样如此 我怎样才能做到这一点 我可以得到它的算法吗 谢谢 附 我看了一会儿 似乎可以使用加速
  • 无法使用Python登录亚马逊

    我正在使用 Python 3 编写一个脚本来登录 Amazon 以获取我的 Kindle 亮点 它基于这篇文章 https blog jverkamp com 2015 07 02 scraping kindle highlights 我无
  • iOS8 AVAudioEngine 如何通过多点连接发送麦克风数据?

    我想通过多点连接 iOS 8 发送麦克风音频数据 并通过接收方的扬声器播放它 我还设置了 AVAudioEngine 并且可以从 上方 扬声器输出听到麦克风数据 但我不知道如何通过网络发送 AVAudioPCMBuffer 这是我的代码片段
  • 全局变量的值在 ValueEventListener 中初始化后会重置

    我有一个名为 bg 的全局变量 它在 firebase 数据库引用 myRef 的 ValueEventListener 内初始化 但是 如果我尝试在 valueeventlistener 块之外使用变量的值 则该变量为空 就好像被重置了一
  • 使用 Big Query 将 firebase event_params 键值数据显示到单行中

    我正在尝试对 Firebase 存储的事件执行 Google BigQuery 我已经执行了以下查询 SELECT FROM myTable LIMIT 6 其结果如下 Row date name event params key even
  • 如何查找已安装的 .NET 版本?

    如何查明安装的 NET 版本 我正在寻找像这样简单的东西java version我可以在命令提示符下输入它 它会告诉我当前安装的版本 我最好补充一点 可能未安装 Visual Studio 这通常是我想了解的有关客户端计算机的信息 有一种更
  • JavaScript - 对 SELECT 选项进行排序

    我使用 PHP 扫描目录并列出所有 xml 文件 每个 XML 文件都包含 名称 元素和 日期 元素 每个 XML 文件的 name 元素作为选项列在选择列表中 这工作得很好 但是 每个 XML 文件中的 日期 元素都不同 并且包含如下日期
  • sclite (SCTK)、C++ 模板参数 Filter::Filter* 无效。西格文

    Problem 我目前正在尝试安装 NISTsclite 它是 SCTK 2 4 0 的一部分 github or 新版本 我正在尝试安装Cygwin in bash 安装是使用完成的make 我能够解决一个问题file format no
  • empty() 不是一个有效的回调?

    我正在尝试在 php ini 的数组映射中使用empty 我收到错误消息 表明这不是有效的回调 cat test php
  • Facebook Graph API - 使用 JavaScript 上传照片

    是否可以使用 JavaScript 使用 Facebook Graph API 上传文件 我觉得我已经很接近了 我正在使用以下 JavaScript var params params message PicRolled params so
  • 连接 ECONNREFUSED 127.0.0.1:27017'

    我有那个代码 var express require express stylus require stylus logger require morgan bodyParser require body parser mongoose r
  • 允许用户仅在 firebase 上修改自己的数据

    我试图阻止黑客修改或查看我的 Firebase 数据库上的数据 我的数据库中的用户包含 身份验证 选项卡中所有用户的用户 ID 我可以让数据库只让登录用户查看数据吗 这是我的数据库结构 Firebase数据库结构 我想允许用户在 用户 中修
  • char 设备捕获多个(int)ioctl 参数

    我必须编写一个linux char设备 它处理每个unlock ioctl的ioctl 没有BKL 函数 目前 我可以从用户空间 ioctl 命令接收一个参数 get user myint int user arg 我如何接收多个 int
  • 如何将数据从Vue实例传递到组件

    首先 我必须说我已经花了几个小时在这上面 所以如果我忽略了一些愚蠢简单的事情 那么我深表歉意 我正在尝试让一个组件通过根 Vue 实例与另一个组件通信 到目前为止 我已经设法让 MakeComponent 向根实例发送消息 如下所示 con
  • Makefile 编译源文件列表

    我有我希望 Makefile 编译的文件列表 每种源语言都有一个列表 CFILES Src Application main c Src Core data c Lib routines c ASFILES Src Application
  • Ruby google_drive gem oAuth2 保存

    因此 在更新之前 有一种简单的方法可以登录谷歌驱动器并操作您的谷歌文档 使用 ruby 在您能够使用此登录您的谷歌驱动器之前 require google drive session GoogleDrive login email prot
  • setOneShotPreviewCallback 未在回调中点击 onPreviewFrame()

    我正在为我正在制作的应用程序创建视频捕获活动 并且我想捕获预览帧以用作播放按钮 我已经设置了SurfaceView up in onCreate 并连接相机的预览显示SurfaceHolder Callback private Callba
  • tsc 抛出“TS2307:找不到本地文件的模块”

    我有一个使用 TypeScript 的简单示例项目 https github com unindented ts webpack example Running tsc p with tsc版本 1 8 10 抛出以下内容 app inde