问题标签 [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.
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
:
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 中的行号识别为有效:
这是一个易于复制的人为示例,但总的来说,我认为设置断点的位置与实际设置的位置之间存在不匹配。
但是,当我中断该debugger
语句时,VSCode 从服务器获取 TypeScript 文件(该选项卡在新打开时显示“从源映射只读内联”行),然后我可以在其中正确设置断点:
这是一个令人不满意的情况,原因我不应该解释:兼顾我可以编辑的本地文件和断点工作的远程文件是一件麻烦事,并且添加debugger
语句将涉及每次我需要新断点时重新加载应用程序。
我已经搜索了这个问题,但这些关键字给了我至少十个冗长的 GitHub 问题,这些问题可以追溯到几年前。由于我对 ts-node、transpilation 和 sourcemaps 的内部结构并不十分熟悉,因此我很难理解这里发生了什么,更不用说如何修复它了。据我了解,发生的情况是 ts-node 将 TS 编译为 JS 并在 Docker 容器内的临时文件中生成源映射,而 VSCode 无法访问它们。(这就是为什么我不知道如何设置 eg 的原因outFiles
。)如果在已关闭的问题中正确设置,也有一些暗示已经支持我的场景,但不知道如何设置。
有没有办法让它工作,这样我就可以在远程调试时在我的本地源中设置一个断点,并让它们在所述文件中命中,而不必恢复到将 TS 预编译为 JS 和源映射,所以我有后者可用本地?
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"。
错误 :
测试文件:
应用组件:
node.js - 即使 tsc 成功解决它,也找不到 Typescript 模块
我有一个用 Typescript 编写的 Node.js 项目,该项目预计将作为 CLI 运行,并且无法node_modules
使用绝对路径导入位于目录之外的模块(相对路径工作正常)。值得一提的是,我正在使用oclif 框架来构建我的 CLI。
我的项目组织如下:
在my-module.ts
我有:
该index.ts
脚本包含以下内容:
当我尝试使用 ts-node 执行我的应用程序时,我得到
我无法理解的是,当我运行tsc --traceResolution
该模块时正确解析:
我的tsconfig.json
文件包含:
如果有人能对这个问题有所了解,或者至少建议在哪里寻求进一步的帮助,我将不胜感激。如果需要更多详细信息,请告诉我。
提前致谢!
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。
javascript - ts-node 是否应该检查 baseUrl tsconfig.json 属性?
我正在使用 ts-node 并且tsconfig.json
我有"baseUrl": "./src"
. 这样我就可以在src
不使用./
. 但是 ts-node 似乎没有使用该baseUrl
属性来解析兄弟导入,所以我收到如下错误:
好奇这是一个 ts-node 错误还是我应该做一些不同的事情?
typescript - 在文件保存时自动编译 TypeScript 文件
我正在寻找将 vanilla node.js 项目移动到 TypeScript 并且我很好奇如何使用最新更改重新启动我的服务器,而无需每次进行更改时都从命令行运行 tsc。
我从这个答案中看到两个选项:ts-node
和tsc --watch
有人可以就这两个选项之间的区别提供一点颜色吗?我知道它们实现了相同的目标,但是它们有什么不同,在什么情况下我应该使用一个而不是另一个?
typescript - TypeScript 找不到具有非相对路径“src/xxx”的模块
我遇到了解决打字稿中非相对模块的问题。并尝试baseUrl
,paths
等等,但它不起作用....
tsconfig.json
项目目录:
在app.ts中
并运行ts-node src/app.ts
.
但是会发生错误:
typescript - 打字稿:语法错误。意外的标记
我正在尝试将 .ts 文件作为控制台应用程序启动。将 .ts 文件转换为 .js(通过 tsc)后没有错误,但由于问题,我无法使用 ts-node 启动 .ts 文件:
“语法错误:意外的令牌......”
我的 tsconfig.json 文件是
打字稿代码是
所以我猜 tsc 和 ts-node 编译 .ts 文件的方式不同。有任何想法吗?谢谢。
node.js - tsc(TypeScript 编译器)和 ts-node 有什么区别?
我对tsc
和之间的区别感到非常困惑ts-node
。我正在学习 TypeScript,我通常.ts
使用命令转换服务器文件tsc
。
现在,我正在接近nestjs框架,我看到它使用ts-node
.
那么两者有什么区别呢?我应该使用哪一个?