问题标签 [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.
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
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:
罪魁祸首功能:
我很欣赏这是很多文字,所以谢谢你的阅读。如果您对可能导致此问题的原因有任何想法,请告诉我。
node.js - 从节点脚本内的路径列表中调用类的静态方法?
问题:
如何获取文件路径列表Array<string>
:
ref.SomeStaticMethod()
对于每条路径,在节点中调用它们的静态方法?
注意:我正在为节点(如果重要的话)和 windows 10 使用打字稿。
完整的错误堆栈跟踪:
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"
其用作我的开发脚本,但这会导致编译器挂起。
typescript - 是否可以将 Typescript 导入到 ts-node REPL 的运行实例中?
我想测试一些我编写的 Typescript 代码。
到目前为止,我所知道的最好的方法是运行ts-node my-file-name.ts
.
但是我想让它更具交互性,类似于 Python REPL 允许您导入模块然后从 REPL 调用函数的方式,但是您愿意。
例如,会话可能看起来像
这可能ts-node
吗?
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 的“肉”。看起来这些类的实际代码不包含在任何地方。
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 通信通道。
关于如何实现这一目标的任何想法?
谢谢!
node.js - 在 ts-node 文件中导入使用“npm”全局安装的模块
我对所有这些Node
和TypeScript
东西都很陌生,所以如果我做的事情不应该做,请随时评论我的方法。
我正在尝试使用RxJS
并希望能够编写一些代码并让它在命令行上运行,而无需编写 HTML 页面并启动浏览器。我安装nvm
并Homebrew
通过它安装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 开始谦虚和简单。
javascript - Typescript - ts-node vs 为开发而编译
打字稿工作流程的新手。在使用 node + JS 时,我通常有一个dev
形式为:nodemon index.js
. 使用打字稿,我看到我有两个选择:
nodemon --exec "ts-node index.ts"
concurrently "tsc -w" "nodemon -w dist dist/index.js"
哪一个在打字稿社区中使用得更频繁?有什么影响?
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?. 由于我不确定他们是否有完全相同的原因,所以我在这里要求打字稿