问题标签 [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 投票
0 回答
295 浏览

typescript - 将 .vue 文件与 ts-node 一起使用

我以编程方式(require('ts-node').register())使用 ts-node 和 Vue 用于开发目的。这不会编译 .vue 文件,因此没有直接使用它们的选项。我现在想要实现的是插入 TypeScript 编译器(通过 ts-node)以在将 .vue 文件导入到 .ts 文件之前随时转换它们。但是我就是找不到路。有没有?或者是否有其他方法可以在使用这些 .vue 文件之前对其进行编译?

0 投票
6 回答
12980 浏览

node.js - NestJS 初创公司的开发速度令人难以置信

我在开发环境中的应用程序在启动阶段非常缓慢。我在各个地方设置了一些调试日志,看看是什么占用了这么多时间,发现我main.ts实际上用了将近9 分钟app.module导入我的!

资源

输出

生产启动:

开发启动:

是的,我开始使用ts-node,但这是 NestJS 推荐用于开发和调试的。

问题

如何优化启动,以便后端的每个小改动都不需要 10 分钟的拖延?我很难集中注意力,这无济于事。

我的模块太多了吗?如果我结合一些会有帮助吗?我有大约 15 个 DB 实体模型,每个模型都包含在它自己的基于 graphql 的模块中以提高可读性,但其中许多都通过forwardRef()在我的模块导入中注入解决了循环依赖关系。这可能是个问题吗?

我尝试包含尽可能少的第三方库以避免 node_modules 地狱。我在我的模块中导入的是我自己的代码或 NestJS 框架的东西。当然我不知道加载了多少隐式依赖项,但是我拖拽的库数量会影响启动性能吗?如果是这样,我如何监控堆栈上的内容以及每个脚本在评估时消耗多少内存/cpu?我可以以某种方式预编译其中的一些以增加启动吗?

在生产中作为已编译的 javascript 运行时,我没有这个问题。

0 投票
2 回答
3292 浏览

mocha.js - 带有 Mocha 的 TS-Node 不使用 TS_NODE_PROJECT

TS_NODE_PROJECT当 ts-node 用于使用 Mocha 进行测试时,我无法使用 env 变量。

项目结构如下所示:

在我的测试中,我想使用一个异步函数,它需要"lib": ["es2018"]作为编译选项。

为了运行测试,我使用了这个命令,但它会导致错误:

这意味着src/tsconfig.json未使用。根据Overriding `tsconfig.json` for ts-node in mocha 和 ts-node 文档,该命令应该将正确的tsconfig.json路径传递给 ts-node。

移动src/tsconfig.json到项目目录并运行相同的命令会导致测试成功。如何将tsconfig.json路径传递给 ts-node 以便测试正确编译?

0 投票
1 回答
287 浏览

javascript - ts-node 是否支持 '@' 样式导入?如果是这样,如何设置它?

我正在使用主快递应用程序中的类创建一个命令行脚本。

脚本位于文件夹中:

主要快递应用程序正在/app使用中import '@/foo/bar/thing

这是在tsconfig.json主应用程序中设置的,如下所示:

脚本执行

我正在测试是否可以从主应用程序导入,所以我创建了一个sayHello()函数。

当我运行它时:

概括:

ts-node 是否支持 '@' 样式的导入?如果是这样,我该如何设置?

0 投票
1 回答
708 浏览

node.js - ts-node 中的断点问题

我遇到了一个非常奇怪的问题。我有两台工作的 PC,其中一台在一天内停止断点。另一台 PC 与以前一样正常工作。我尝试重新安装Node JSts-node然后甚至硬重置 Windows(我使用 Windows)但没有任何成功。
然后我认为这可能是我的项目中的问题,我试图从谷歌教程中克隆hello world项目,我发现我仍然无法调试它!
所以我成功地在我的端口上运行了一个应用程序,但断点不会命中。这在 VS Code、WebStorm 甚至 Chrome 调试器中停止工作。

这就是我运行应用程序的方式:"C:\Program Files\nodejs\node.exe" --inspect --require ts-node/register C:\Projects\node-typescript-starter-master\src\index.ts

然后我从 chrome 打开开发工具,我看到了这个:

在此处输入图像描述

然后我按下“检查”,我在控制台中看到消息: Debugger attached. Debugger listening on ws://127.0.0.1:9229/8bae9408-867c-4278-9148-b6c90b35a8ae For help, see: https://nodejs.org/en/docs/inspector Debugger attached.

这是下一个窗口。好像我在这里遗漏了任何文件。

在此处输入图像描述

这是否意味着我的文件映射有问题?请让我提出任何可能是问题的建议。

0 投票
1 回答
686 浏览

javascript - 一些 expressjs 静态文件被提供,而另一些则没有

我有一个奇怪的情况,特别麻烦的是我已经这样做了很多次,然后它必须是我所缺少的简单的东西。

请帮助我感觉我正在失去理智......

问题/症状

  1. 我可以从 lib 文件夹中加载任何 js 文件
  2. root/public/art我可以在 web 位置下的文件夹中加载任何 png 文件//art/foo/bar.png
  3. 无论我做什么,都无法从 CSS 或 js 加载任何内容,这一切都给了我 404 错误,这让我完全发疯了。
  4. 注释掉第 13 行的相同行为
  5. 与第 14-16 行的各种形式相同
  6. 使用和不使用路由器都一样

文件夹结构

    • 服务器.ts
    • 上市
    • 艺术
      • 子文件夹中的艺术品
    • css
      • 画布.css
    • js
      • js文件在文件夹中,而不是

代码

解决方案(编辑)

万一以后有人发现这个问题,我一直在修复它,我只需要做一个空缓存并重新加载......如果你在 chrome 打开开发工具 F12 然后单击并按住刷新并选择它。

0 投票
1 回答
4713 浏览

node.js - ts-node 将选项传递给节点

调用 ts-node 时有没有办法将选项传递给节点?我正在尝试在 node 中使用一个实验性功能,如果它可以与 ts-node 一起使用,它会膨胀。

这就是我目前正在做的事情:

0 投票
1 回答
852 浏览

javascript - 使用节点检查器 CLI 调试 typescript 时显示原始 typescript 文件

有没有办法让节点检查器 CLI(或任何基于 CLI 的调试器)在调试时显示原始打字稿文件?

例如,为了调试打字稿,我通常会运行类似:nodemon -e ts -w src -x "tsc -p . && node inspect ./dist/file.js". 这有效,但它调试转译的 javascript。

为了解决这个问题,我尝试ts-node像这样使用:nodemon -e ts -w src -x "node inspect -r ts-node/register src/file.ts". 尽管如此,调试器仍会显示转译后的 JS。

sourcemap: trueintsconfig也无济于事。

0 投票
1 回答
554 浏览

node.js - Mocha 从已删除的规范中运行测试

我正在 Visual Studio Code 中的节点项目上使用 mocha 运行测试。在一些重构过程中,我将我的一个测试规范从 重命名basic-heating-rule-spec.tsrule-config-spec.ts.

重构的测试失败了,没什么大不了的,但错误似乎表明 now deletedbasic-heating-rule-spec.ts仍在运行:

似乎旧规范被缓存在某个地方。我尝试重新启动 VSCode 并重新启动我的机器,但不存在的测试文件继续运行。有谁知道文件被缓存在哪里以及如何清除它?

我执行测试,npm run test我的 package.json 包含以下内容:

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

更奇怪的是:重构的rule-config-spec.ts包含describe("RuleConfig"() =>...)出现在上面的消息中。如果我将其更改为,describe("RuleXXXConfig"() =>...)那么我会收到引用正确文件的错误:

如果我将其改回,describe("RuleConfig"() =>...)那么我会收到再次引用不存在的测试文件的旧消息:

我现在已经完全脱离了我的深度:有人知道WTF在这里发生吗?

0 投票
1 回答
612 浏览

typescript - Mocha - 对装饰器的实验性支持是一项可能在未来版本中更改的功能

我正在尝试Mocha使用以下命令运行单元测试Windows

并得到以下错误

尽管我的tsconfig.json文件中有以下内容。

谁能建议我如何引用该tsconfig.json文件?