在ts节点文件中导入以'npm'全局安装的模块

时间:2018-09-30 10:38:44

标签: node.js ts-node

我对所有这些NodeTypeScript都是陌生的,因此,如果我做的事情不符合应做的方式,请随时对我的方法发表评论。

我正在尝试使用RxJS,希望能够编写一些代码并使其在命令行上运行,而不必编写HTML页面并启动浏览器。我用nvm安装了Homebrew,并通过它安装了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编写代码,因此我通过npm在全球安装(版本3.0.3),并且可以正常工作-我可以编写基本的.ts文件并在命令行上使用.js将其转换为tsc

我想在命令行上运行.ts文件,我发现ts-node并通过npm在全局安装(版本7.0.1)。不,我可以运行简单文件:

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

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

$ 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之类的其他平台,我希望全局安装的模块可用,但它们不可用(或者我将其导入错误,也许Node的语法应该不同?)。我该如何运作?我不希望启动像VS-Code这样的功能强大的IDE(我什至不知道如何使代码始终运行),因为我想在CLI上变得谦虚而简单。

0 个答案:

没有答案