我的打字稿编译器有什么问题?'tsC语言 -version' 不返回任何内容



在Linux Mint中,我安装了node并使用它来安装typescript。对于一个工作的typescript安装,tsc --version应该返回版本号。在我的例子中,什么都不返回。

当我运行which tsc的结果是/usr/local/bin/tsc

当我运行cat /usr/local/bin/tsc时,结果是:

#!/usr/bin/env node
require('../lib/tsc.js')

当我运行find /usr/local -name 'tsc*'的结果是:

/usr/local/bin/tsc
/usr/local/lib/node_modules/typescript/bin/tsc
/usr/local/lib/node_modules/typescript/lib/tsc.js

这看起来正确吗?如果是这样的话,我希望你能告诉我还有什么可以看的?

注意我也试着运行/usr/local/lib/node_modules/typescript/bin/tsc --version,得到了相同的结果,即没有

在我的情况下,Ubuntu 16.04的问题是因为我执行了sudo apt-get install node-typescript,这给了我坏了的tsc。在通过apt-get remove删除它之后,然后按照npm install -g typescript的建议安装,它工作得很好。

我发现运行node --version没有返回任何东西(但不应该)但是nodejs --version工作(结果是v0.10.25)。重新安装节点无法修复此问题。我不知道为什么会出现这种情况,因为我认为我遵循了推荐的安装过程。

但是,编辑文件/usr/local/bin/tsc并更改行:

#!/usr/bin/env node

#!/usr/bin/env nodejs

似乎有效。现在tsc --version返回message TS6029: Version 1.6.2,当我运行make时,我得到了生成的.js文件。

我在Ubuntu 16.04.6中得到以下错误:

  internal/modules/cjs/loader.js:638
   throw err;
   ^
Error: Cannot find module 'typescript/tsc.js'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
   at Function.Module._load (internal/modules/cjs/loader.js:562:25)
   at Module.require (internal/modules/cjs/loader.js:690:17)
   at require (internal/modules/cjs/helpers.js:25:18)
   at Object.<anonymous> (/usr/bin/tsc:2:1)
   at Module._compile (internal/modules/cjs/loader.js:776:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
   at Module.load (internal/modules/cjs/loader.js:653:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
   at Function.Module._load (internal/modules/cjs/loader.js:585:3)

运行:npm install -g typescript没有解决这个问题。所以,我必须安装最新版本的节点,即nvm install <nvm version>

然后使用npm install,它解决了这个问题。

有时,删除node_modules并运行npm iyarn可以解决问题。

最新更新