4

在尝试从源代码构建它的过程中,我似乎破坏了我在 Ubuntu 13.10 上的 TypeScript 安装。我已经放弃了,现在只想回到一个正常工作的二进制安装。

我删除了 NodeJS--purge并通过

sudo apt-get install nodejs

并确保“节点”确实指向 NodeJS(而不是我卸载的 Ubuntu 包“节点”)。在命令行输入node会让我进入 NodeJS 提示符,这样看起来还不错。

然后我重新安装npm,然后通过 TypeScript 二进制文件

sudo npm -g install TypeScript@0.9.1-1

这导致

npm http GET https://registry.npmjs.org/typescript/0.9.1-1
npm http 304 https://registry.npmjs.org/typescript/0.9.1-1
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
typescript@0.9.1-1 /usr/local/lib/node_modules/typescript

我检查了which tsc指向/usr/local/bin/tsc. 这个文件的内容是:

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

该目录/usr/local/lib/node_modules/typescript/bin/包含

drwxr-xr-x  3 nobody rolyp    4096 Oct 24 22:55 ./
drwxr-xr-x  3 nobody rolyp    4096 Oct 24 22:55 ../
-rw-r--r--  1 nobody rolyp  323793 Aug 21 17:17 lib.d.ts
drwxr-xr-x 16 nobody rolyp    4096 Oct 24 22:55 resources/
-rwxr-xr-x  1 nobody rolyp      42 Aug 21 17:17 tsc*
-rw-r--r--  1 nobody rolyp 2565152 Aug 21 17:17 tsc.js
-rw-r--r--  1 nobody rolyp 2509628 Aug 21 17:17 typescript.js

最后,如果我手动切换到目录,输入node,然后require('./tsc.js')在NodeJS提示符下输入,则tsc运行成功。

但是如果我tsc在命令行输入,我只会得到晦涩的消息

`: No such file or directory`

请注意,由于节点/ NodeJS 冲突,我没有收到错误env: node: No such file or directory,这是我第一次在 Ubuntu 上安装 TypeScript 时遇到的问题。

鉴于我可以如上所述手动启动它,谁能告诉我我需要做什么才能从命令行运行tscnode

4

5 回答 5

13

我从包管理器安装节点作为 nodejs。为了解决问题:“没有这样的文件或目录”运行 TypeScript,我使用来自https://github.com/joyent/node/issues/3911的 digitalmediums 建议:只需创建符号链接:

ln -s /usr/bin/nodejs /usr/bin/node
于 2013-11-01T01:38:39.463 回答
6

sudo gedit /usr/local/lib/node_modules/typescript/bin/tsc

更新了初始内容

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

#!/usr/bin/env nodejs
require('./tsc.js')
于 2014-03-26T02:48:19.857 回答
3

我在创建自己的 nodejs 命令行工具时遇到了同样的问题。我使用 netbeans 在 Windows 上创建了该工具,并从那里将其发布到 npmjs。在 Ubuntu 上使用 npm 安装它后,我尝试运行它,但我收到了相同的错误消息。我尝试了一切来修复它,我什至重新安装了 Ubuntu,但没有任何效果。

我找到的解决方案非常简单。我创建了一个新的入口点文件(以 #!/usr/bin/env 节点开头的那个)并将旧的内容复制到它。我也使用 netbeans 做到了这一点,但这次是在 Ubuntu 上。可能文件编码不同。

因此,在您的情况下,只需将旧文件复制到其他位置后,在同一位置(/usr/local/lib/node_modules/typescript/bin/tsc)创建一个新的 tsc 文件,然后复制并粘贴旧文件的内容一个到新的。可能这应该由 TypeScript 开发人员修复。

于 2013-11-15T19:40:03.627 回答
3

在 ubuntu 上,安装包 nodejs-legacy

apt-get install nodejs-legacy
于 2014-12-24T09:13:21.787 回答
1

node您可以使用sonode tsc而不是简单地运行 tsc tsc。这应该适用于mac/linux/windows。

于 2013-10-24T23:08:36.180 回答