问题标签 [ts-node]

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 回答
507 浏览

node.js - Can't start karma test - unable to resolve module [sqlite3] and more

I have a problem with run unit test for my stack: - node - ts-node - express.js - sequelize - mysql - karma

When I run Karma I get a lot of errors like this one:

Above error is connected with sqlite3, but I has also [pg] module and [tedious]

I saw that I should install one dependencies for DB system what I use in my development, so I use npm install mysql2 but I can't start any Karma task.

Any idea where I should search? I doesn't see this problem on any github & stack questions so I think that this is in my config.

Below I post my karma.conf.js, tsconfig.json & package.json

karma.conf.js

tsconfig.json:

And my dependencies from package.json:

0 投票
1 回答
1543 浏览

typescript - 使用 VS Code 调试在 Docker 容器中使用 ts-node 运行的 TypeScript 应用程序时,如何正确设置断点?

我们的应用程序是用 TypeScript 编写的并使用 Docker,为了避免往返 .js 文件,我们使用ts-node运行它以直接加载 .ts 文件。

不幸的是,这似乎让 VSCode 对设置断点的有效代码行感到困惑。

此问题体现在以下设置中:

/package.json

/tsconfig.json

/Dockerfile

/docker-compose.yml

/.vscode/launch.json

/src/index.ts

(由于我稍后将说明的原因,空白行很重要,其中大约有十个可以完成这项工作。)

你也可以在这里获取全部内容:https ://github.com/millimoose/ts-node-breakpoints

我使用 运行它docker-compose --up,然后使用上面的启动配置使用调试器附加到它。当我尝试在调用/src/index.ts内的任何行上设置断点时createServer(),它们被报告为无效;而我可以在空行中设置断点。这大概是因为 TypeScript 编译去掉了空白行,并且出于某种原因,VSCode 只会将生成的 JS 中的行号识别为有效:

TS 和 JS 的行号不匹配

这是一个易于复制的人为示例,但总的来说,我认为设置断点的位置与实际设置的位置之间存在不匹配。

但是,当我中断该debugger语句时,VSCode 从服务器获取 TypeScript 文件(该选项卡在新打开时显示“从源映射只读内联”行),然后我可以在其中正确设置断点:

本地文件与远程文件中的断点

这是一个令人不满意的情况,原因我不应该解释:兼顾我可以编辑的本地文件和断点工作的远程文件是一件麻烦事,并且添加debugger语句将涉及每次我需要新断点时重新加载应用程序。

我已经搜索了这个问题,但这些关键字给了我至少十个冗长的 GitHub 问题,这些问题可以追溯到几年前。由于我对 ts-node、transpilation 和 sourcemaps 的内部结构并不十分熟悉,因此我很难理解这里发生了什么,更不用说如何修复它了。据我了解,发生的情况是 ts-node 将 TS 编译为 JS 并在 Docker 容器内的临时文件中生成源映射,而 VSCode 无法访问它们。(这就是为什么我不知道如何设置 eg 的原因outFiles。)如果在已关闭的问题中正确设置,也有一些暗示已经支持我的场景,但不知道如何设置。

有没有办法让它工作,这样我就可以在远程调试时在我的本地源中设置一个断点,并让它们在所述文件中命中,而不必恢复到将 TS 预编译为 JS 和源映射,所以我有后者可用本地?

0 投票
1 回答
971 浏览

typescript - 你如何在带有 Typescript 的 create-react-app 中使用 Mocha?

我正在使用 create-react-app (typescript) 来创建反应应用程序,但我想使用 mocha + 酶而不是 jest 来测试我的反应组件。

在此之前我正在使用这个测试脚本

"test" :"NODE_ENV=development mocha --watch-extensions tsx --watch --require ignore-styles --require babel-core/register ./src/*.test.tsx"。

但是 mocha 不理解正在导入的 tsx 文件。

测试脚本:

"test": "NODE_ENV=development mocha -r babel-core/register -r ts-node/register src/*.test.tsx"。

错误 :

测试文件:

应用组件:

0 投票
2 回答
12814 浏览

node.js - 即使 tsc 成功解决它,也找不到 Typescript 模块

我有一个用 Typescript 编写的 Node.js 项目,该项目预计将作为 CLI 运行,并且无法node_modules使用绝对路径导入位于目录之外的模块(相对路径工作正常)。值得一提的是,我正在使用oclif 框架来构建我的 CLI。

我的项目组织如下:

my-module.ts我有:

index.ts脚本包含以下内容:

当我尝试使用 ts-node 执行我的应用程序时,我得到

我无法理解的是,当我运行tsc --traceResolution该模块时正确解析:

我的tsconfig.json文件包含:

如果有人能对这个问题有所了解,或者至少建议在哪里寻求进一步的帮助,我将不胜感激。如果需要更多详细信息,请告诉我。

提前致谢!

0 投票
0 回答
1379 浏览

typescript - 切换到 ES2015 并使用 ts-node 时的模块地狱

对于我的库项目,我已经意识到最好使用 TypeScript 转换为 ES2015 格式,然后bili将其转换为其他格式(也称为 UMD 和 CJS)。所以这意味着我的主要tsconfig.json是:

这可以满足我的转换所需,但多年来我一直很享受通过以下方式运行的 mocha 测试ts-node

ts-node --require ts-node/register 'test/**/*-spec.ts'

我很快意识到我所有基于 TS 的测试脚本现在都由于使用了import语句等而崩溃,但我能够通过添加以下内容来解决这个问题:

TS_NODE_PROJECT="tsconfig.test.json" ts-node --require ts-node/register 'test/**/*-spec.ts'

替代方案tsconfig.test.json是:

lodash这确实在一定程度上推动了事情的发展,因为我的测试文件——它们是 TypeScript 文件——现在确实运行了,但是当我从切换到(希望是显而易见的原因)时一切都不好lodash-es,现在我在 lodash-es 中遇到错误:

在此处输入图像描述

所以从本质上讲,似乎正在转换以下 ES 格式的文件:

  • 我的测试脚本test-spec.ts
  • 我的源文件src/my-file.ts

但是我的源文件依赖项(例如 ES2015 中的“lodash-es”)没有被转译。我有什么办法可以解决这个问题吗?


更新

我发现这篇文章非常有用:Treeshake Lodash with Webpack, Jest and Typescript

虽然该示例使用 Jest,但我相信 Mocha 的行为方式与描述的方式相同。我不知道的是……有没有办法像本文中的 Jest 那样配置 Mocha。

0 投票
1 回答
3494 浏览

javascript - ts-node 是否应该检查 baseUrl tsconfig.json 属性?

我正在使用 ts-node 并且tsconfig.json我有"baseUrl": "./src". 这样我就可以在src不使用./. 但是 ts-node 似乎没有使用该baseUrl属性来解析兄弟导入,所以我收到如下错误:

好奇这是一个 ts-node 错误还是我应该做一些不同的事情?

0 投票
1 回答
5350 浏览

typescript - 在文件保存时自动编译 TypeScript 文件

我正在寻找将 vanilla node.js 项目移动到 TypeScript 并且我很好奇如何使用最新更改重新启动我的服务器,而无需每次进行更改时都从命令行运行 tsc。

我从这个答案中看到两个选项:ts-nodetsc --watch

有人可以就这两个选项之间的区别提供一点颜色吗?我知道它们实现了相同的目标,但是它们有什么不同,在什么情况下我应该使用一个而不是另一个?

0 投票
2 回答
2129 浏览

typescript - TypeScript 找不到具有非相对路径“src/xxx”的模块

我遇到了解决打字稿中非相对模块的问题。并尝试baseUrlpaths等等,但它不起作用....

tsconfig.json

项目目录:

app.ts中

并运行ts-node src/app.ts.

但是会发生错误:

0 投票
1 回答
2671 浏览

typescript - 打字稿:语法错误。意外的标记

我正在尝试将 .ts 文件作为控制台应用程序启动。将 .ts 文件转换为 .js(通过 tsc)后没有错误,但由于问题,我无法使用 ts-node 启动 .ts 文件:

“语法错误:意外的令牌......”

我的 tsconfig.json 文件是

打字稿代码是

所以我猜 tsc 和 ts-node 编译 .ts 文件的方式不同。有任何想法吗?谢谢。

0 投票
2 回答
13307 浏览

node.js - tsc(TypeScript 编译器)和 ts-node 有什么区别?

我对tsc和之间的区别感到非常困惑ts-node。我正在学习 TypeScript,我通常.ts使用命令转换服务器文件tsc

现在,我正在接近nestjs框架,我看到它使用ts-node.

那么两者有什么区别呢?我应该使用哪一个?