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

typescript - ts-node 在 tsc 成功编译项目时忽略 d.ts 文件

成功编译了我的 TypeScript 项目后,我打算在 VS Code 的调试模式下使用ts-node. 问题是,ts-node找不到d.ts我创建的文件(虽然tsc没有问题)。

项目结构为:

tsconfig.json相关条目是:

定义文件ts-node找不到是src/types/global.d.ts

所以,尝试运行它,ts-node我看到:

如何在全球范围内解决它?我发现这/// <reference path="./types/global.d.ts" />可以解决问题,但我必须在每个文件中使用global.app.

我的 TypeScript 版本是 3.0.1

0 投票
1 回答
76 浏览

javascript - ts-node 在 OS X 上运行测试,但不在 Ubuntu 上

当我在 Linux 中运行测试但运行良好并在 OS X 中通过时,我遇到了一个奇怪的问题,即引发 TS-Error。

该项目是用 Typescript 编写的,并使用 Mocha 进行了测试(使用 ts-node)。当我在 OS XI 上运行测试时没有遇到任何问题,但是一旦我尝试在 linux 机器上运行它们,它们就会失败,并给出错误:

错误 TS6054:文件 '/[user]/workspace/content-delivery-application/templates/footer.html.twig' 的扩展名不受支持。唯一支持的扩展名是“.ts”、“.tsx”、“.d.ts”、“.js”、“.jsx”

我确实在源代码中包含了 Twig 文件,这些文件作为 Webpack 构建过程的一部分捆绑在一起,我将它们包装在 try catch 中并返回一个存根函数来代替模板。但是测试代码是通过 TS Node 在预编译的 TS 文件上运行的,因此文件没有被打包。尽管我想强调,“解决方法”try catch 一直在我的 OS X 中工作。

我的摩卡选择看起来像这样:

还有我的 tsconfig:

罪魁祸首功能:

我很欣赏这是很多文字,所以谢谢你的阅读。如果您对可能导致此问题的原因有任何想法,请告诉我。

0 投票
1 回答
129 浏览

node.js - 从节点脚本内的路径列表中调用类的静态方法?

问题:

如何获取文件路径列表Array<string>

ref.SomeStaticMethod()对于每条路径,在节点中调用它们的静态方法?

注意:我正在为节点(如果重要的话)和 windows 10 使用打字稿。


完整的错误堆栈跟踪:

0 投票
1 回答
644 浏览

node.js - 未为 dev 编译子文件夹

我正在使用 TypeScript 创建我的 nodejs 应用程序,该应用程序运行良好,因为index.ts正在成功编译和执行,但是子文件夹中的 TypeScript 文件被忽略并且不构成开发监视的一部分。

任何人都可以帮忙吗?我用来yarn start在开发模式下运行我的应用程序。我的脚本package.json看起来像这样:

我的tsconfig.json样子是这样的:

我曾尝试将"build:live": "nodemon --exec ./node_modules/.bin/ts-node --project tsconfig.json"其用作我的开发脚本,但这会导致编译器挂起。

0 投票
2 回答
1536 浏览

typescript - 是否可以将 Typescript 导入到 ts-node REPL 的运行实例中?

我想测试一些我编写的 Typescript 代码。

到目前为止,我所知道的最好的方法是运行ts-node my-file-name.ts.

但是我想让它更具交互性,类似于 Python REPL 允许您导入模块然后从 REPL 调用函数的方式,但是您愿意。

例如,会话可能看起来像

这可能ts-node吗?

0 投票
0 回答
348 浏览

node.js - node.js(使用 ts-node)引用本地 TypeScript 模块导致构造函数的 TypeError

我正在构建一个 ReactJS 和 TypeScript 项目,并希望使用我将在我的 Web 应用程序和 API 服务器之间共享的模块。

我为我的网络应用程序使用了带有 ts-scripts 的 create-react-app。我在没有使用入门项目的情况下制作了我的共享模块,因为它非常简单。

我的 Web 应用程序使用 NPM 的本地包功能引用我的共享模块,命令npm install --save <path/to/shared/package>

当我npm run start为我的反应应用程序做时,我得到了错误

TypeError: __WEBPACK_IMPORTED_MODULE_3_validation_shared__.ValidEmail is not a constructor

validation_shared是我缺乏想象力的模块名称。

导致错误的 TypeScript 是

const valid_email = new ValidEmail("john.doe@example.com");

我可以在我的配置或设置中更改什么以使其正常工作吗?我很想使用 typescript 和 ts-node,并且有共享模块。

编辑 - 为 ValidEmail 和该文件中的其他函数添加代码。

经过更多调查后,看起来无论 webpack/bundling 过程 create-react-app 使用的都是将导入定义与前端代码捆绑在一起,而不是添加实际的类和函数定义。

我通过检查加载到 chrome 中的生成代码并查找不存在的实际类名“ValidEmail”来发现这一点。

编辑#2 - console.log 输出 我将我的 App.tsx 更新为此

console.log(vs) 的结果是: /static/media/index.9d88054a.ts

当我查看文件的内容时,我只看到

这是有道理的,因为它是该模块的 index.ts 文件的内容。我在任何地方都找不到文件 ValidEmail 或 User 的“肉”。看起来这些类的实际代码不包含在任何地方。

0 投票
3 回答
5219 浏览

node.js - 使用 ts-node 时通过 fork() 调用子进程

我有一个打字稿项目,而不是tsc先使用,我只是ts-node直接运行。

在我的代码中,我需要使用fork().

如果我运行类似代码child_process.fork('ChildProcess.ts')ChildProcess.ts包含一些仅打字稿的构造(例如:import {}、、export...),那么解释器将失败node,而不是。ts-node

可能建议使用类似的东西child_process.exec('node ./node_modules/.bin/ts-node ChildProcess.ts),但我真的想要/需要在fork()专门使用时在父进程和子进程之间建立的 IPC 通信通道。

关于如何实现这一目标的任何想法?

谢谢!

0 投票
0 回答
351 浏览

node.js - 在 ts-node 文件中导入使用“npm”全局安装的模块

我对所有这些NodeTypeScript东西都很陌生,所以如果我做的事情不应该做,请随时评论我的方法。

我正在尝试使用RxJS并希望能够编写一些代码并让它在命令行上运行,而无需编写 HTML 页面并启动浏览器。我安装nvmHomebrew通过它安装node 10.11.0并可以成功使用它:

我想用它TypeScript来编写我的代码,所以我通过全局安装它(版本 3.0.3)npm并且它可以工作 - 我可以编写一个基本.ts文件并将其转换为在命令行上.js使用。tsc

我想.ts在命令行上运行文件,我ts-node通过npm. 不,我可以运行简单的文件:

作为最后一步,我RxJS通过全局安装(版本 6.3.3)npm并一起尝试了所有这些,但在这里它在导入行失败:

我没有启动任何项目或任何东西,我只是安装了工具,编写了源文件并启动了这些工具。

来自其他平台,如 Python,我希望全局安装的模块可用,但它们不是(或者我导入它们错误,也许 for 的语法Node应该不同?)。我怎样才能让它工作?我不想启动像 VS-Code 这样成熟的 IDE(我什至不知道如何让代码运行),因为我想从 CLI 开始谦虚和简单。

0 投票
0 回答
202 浏览

javascript - Typescript - ts-node vs 为开发而编译

打字稿工作流程的新手。在使用 node + JS 时,我通常有一个dev形式为:nodemon index.js. 使用打字稿,我看到我有两个选择:

  1. nodemon --exec "ts-node index.ts"
  2. concurrently "tsc -w" "nodemon -w dist dist/index.js"

哪一个在打字稿社区中使用得更频繁?有什么影响?

0 投票
4 回答
13419 浏览

typescript - 如何在打字稿中正确使用 lodash-es?

我需要lodash-es在我的打字稿项目中使用,但我无法正确配置它,它总是报告错误,例如SyntaxError: Unexpected identifier

你好.ts

包.json

tsconfig.json

运行时ts-node hello.ts,它会报告如下错误:

我还为此问题设置了一个小演示,如果需要,您可以克隆并尝试:https ://github.com/freewind-demos/typescript-use-lodash-es-demo

一个相关的问题是将 lodash-es 与 babel 一起使用:如何正确配置 babel 以使用 lodash-es?. 由于我不确定他们是否有完全相同的原因,所以我在这里要求打字稿