问题标签 [tsconfig-paths]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1560 浏览

typescript - 使用 * glob 理解 TypeScript 中的“baseUrl”和“路径”

我有一个使用纱线工作区和以下文件夹结构创建的 monorepo:

以及以下设置tsconfig.json

@project/bar工作区中,我想从以下位置导入模块@project/foo

但我收到以下错误:

找不到模块“@project/foo”或其对应的类型声明。ts(2307)

如果我*从“路径”对象的键和值中删除符号,代码就会编译。这是为什么?如何保持*全局模式并对本地模块进行非相对导入?

0 投票
1 回答
35 浏览

node.js - 无法使用模块解析运行已编译的打字稿编

我正在尝试编译以下打字稿文件

文件结构为:

在 tsconfig.json 我映射lib/magic到正确的文件如下

正是该paths部分将导入映射lib/magic./src/lib/a/magic.ts.

所以,我可以编译如下

它产生输出dist。但是,当我尝试运行它时

这是有道理的,因为在 dist 中没有lib/magic. 任何建议如何解决这个问题?

0 投票
1 回答
115 浏览

typescript - 如何让 Typescript 脚本使用 tsconfig 中定义的路径?

在我的 NodeJS/Typescript 项目中,我创建了一个脚本database-init.script.ts,我运行该脚本以使用示例数据初始化数据库。

我的 package.json 看起来像这样:

问题是脚本导入了一些本身使用 tsconfigpaths快捷方式的文件。例如一些文件有

我的脚本失败了,因为它无法识别这些。它给了我

如何在不编译整个项目的情况下获取脚本来识别 tsconfig 定义的路径?

0 投票
1 回答
2643 浏览

angular - tsconfig 中使用 TypeScript 路径映射的短导入

我正在尝试为我的 Angular 模块创建简短的导入。

以下是我在 tsconfig.base.json 文件中修改的内容。

模块路径:projects/asfc-shared/src/public_api.ts

如果我导入,在我的组件中,SharedGlobalService

我收到以下错误。

我在这里做错了什么?请帮忙。

更新:文件夹结构

更新

更新 baseUrl 后,出现以下错误

0 投票
4 回答
5196 浏览

node.js - tsconfig 中的绝对路径不起作用

我看到了一些关于这个问题的问题,它们都不起作用我有一个 nodejs 项目和 Typescript。我不喜欢使用相对路径。在 tsconfig 中设置路径时出现以下错误:

找不到模块'@app/controllers/main'

这是我的项目的结构:

配置:

我的问题在哪里?

提前致谢。

0 投票
1 回答
534 浏览

reactjs - 使用 create-react-app 创建自定义绝对路径

我使用create-react-appversion创建了一个带有 typescript 的 React 项目3.4.1。我试图避免在我的项目中使用相对路径。这是我的项目树的一部分:

我基本上想要的是能够做类似的事情import '@components/c'。我试图将此部分添加到我的tsconfig.json文件中:

但是每次我使用yarn start我的 tsconfig 启动我的应用程序时都会删除我的这部分代码(除了我的“baseUrl”部分之外的所有内容)。据我所知,自第 3 版以来,通过启用属性来影响导入的根目录,部分react-create-app解决了这个问题。但是我在任何地方都找不到从 tsconfig目录设置绝对路径的可行解决方案。部分解决方案对我不起作用,因为我可能要从公共目录导入东西。baseUrlpath

我确实从去年开始尝试过这个解决方案,但它对我不起作用。有没有人设法让这个或任何其他解决方案工作?

理想情况下,该解决方案将使我仍然可以使用 create-react-app 而不是使用其他包,但当然任何解决方案都可以。

0 投票
0 回答
1744 浏览

node.js - 如何解决相对路径地狱(带打字稿的节点)

我正在使用节点、打字稿和其他包开发 CLI。这个想法很简单,CLI 为您的节点项目(javascript 或 typescript)提供了一个初始结构

好吧,在测试的时候,我发现了一个我好几天都无法解决的问题。初始结构为:

typescript services 文件扩展了一个抽象服务(这个在 中./src/global/services/abstract.service.ts)。每个组件都将位于./src/api目录中并具有其各自的文件夹(如用户组件)。在 users 组件中导入抽象类的相对路径是../../global/services/abstract.service

但是您可以在不同的目录中创建组件,因此之前的相对路径不起作用。为了解决这个问题,我决定使用像 webpack 这样的路由配置。所以我不想使用以前的相对路径,而是想使用这样的东西@global/services/abstract.service

如果节点项目使用带有 babel 的 javascript,我实现了这一点:

  • @babel/polyfill
  • @babel/cli
  • @babel/核心
  • @babel/节点
  • @babel/预设节点
  • babel-plugin-module-resolver

但是我没有实现那个什么时候是一个打字稿项目。具有“tsconfig.json路径”选项,这在开发中有效,但是当我将 typescript 编译为 javascript 时,这不起作用。我尝试了很多方法来解决这个问题,但一切都失败了。这些是我到目前为止使用的软件包:

  • 链接模块别名 ()
  • 带有 tsconfig-path 的 ts-node
  • 打字稿
  • @zerollup/ts-transform-paths

第二个工作正常,但我必须为我在 ts 文件中所做的每个更改重新启动,也许我没有正确配置脚本package.json,因为 tsc-watch 不起作用)。我看到的链接:

请,如果有人知道如何解决相对路径地狱,如果您告诉我如何解决,我将不胜感激,并提供示例或其他帮助我的东西

0 投票
5 回答
9777 浏览

reactjs - compilerOptions.paths 不得设置(不支持别名导入)

我正在尝试在 tsconfig.json 中映射路径以摆脱相对路径的地狱。我的React App 基于 Create-React-App。我尝试了这个SO 线程并在我的 tsconfig.json 中添加了路径。我的 tsconfig.json 是

当我在 VS Code 中编译我的项目时,它会从 tsconfig.json 中删除路径条目,并显示以下消息。为什么我的基于react-scripts的 React 项目不支持别名导入?

在此处输入图像描述

0 投票
2 回答
1490 浏览

angular - VSCode / tslint 不解析 tsconfig.json 中的路径

vscode 不知何故不尊重我的 tsconfig.json (几周以来,情况有所不同。无论是我的错误还是 vscode 更新......)

在此处输入图像描述

分别在“问题”选项卡中:

找不到模块“@foo-animation/animation-micro”或其相应的类型声明。ts(2307)

常规基本路径(如@angular/core已正确解决,只是我的“自定义”路径是问题......

编译、构建、运行......所有工作都像魅力一样。所以我相信从角度/打字稿的角度来看一切都很好。(另外,我使用 IntelliJ 的开发人员没有任何问题……)所以它似乎可以归结为“告诉 vscode”……:-/

tsconfig.json的位于项目的根文件夹中。唯一的事情是,我使用了另一个tsconfig.app.json,其中包括上面的tsconfig.json

在此处输入图像描述

那么有没有办法告诉 vscode 在哪里寻找它的 tsconfig.json (以鼓励解析这些路径)?

这个 SO question这个 VSCode github 问题可能是相关的,但我仍然不知道该怎么做。

0 投票
1 回答
48 浏览

typescript - 设置 tsconfig.json 目标会破坏路径

这是我的进口

这些设置将正确导入,但缺少现代 TS 功能

这些设置根本不导入


如果我测试通过,看起来路径对 ES5 和 ES6 及更高版本都按预期工作,它们不起作用,也不会给出任何有意义的错误。


这是怎么回事?为什么路径在新目标中的工作方式不同?发生了什么变化,我应该怎么做?