首页 > 解决方案 > 在 ts-node 文件中导入使用“npm”全局安装的模块

问题描述

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

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

$ which node
/Users/wujek/.nvm/versions/node/v10.11.0/bin/node
$ node -e 'console.log("Hello, world!")'
Hello, world!

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

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

$ ts-node <(echo 'class Foo{}; console.log(new Foo());')
Foo {}

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

$ echo 'import { Observable } from "rxjs";' > rx.ts
$ ts-node rx.ts

/Users/wujek/.nvm/versions/node/v10.11.0/lib/node_modules/ts-node/src/index.ts:261
return new TSError(diagnosticText, diagnosticCodes)
       ^
TSError: ⨯ Unable to compile TypeScript:
rx.ts(1,28): error TS2307: Cannot find module 'rxjs'.
(and the error stack trace)

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

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

标签: node.jsts-node

解决方案


推荐阅读