我似乎在尝试从源代码构建它的过程中破坏了我在Ubuntu 13.10上的TypeScript安装。我已经放弃了,现在只想回到工作二进制安装。
我删除了--purge
的NodeJS并通过
sudo apt-get install nodejs
并确保'node'确实指向NodeJS(而不是我卸载的Ubuntu包“node”)。在命令行输入node
会使我进入NodeJS提示符,看起来很好。
然后我重新安装了npm
,然后通过
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
,然后在NodeJS提示符下输入require('./tsc.js')
,然后tsc
成功运行。
但如果我在命令行输入tsc
,我只会收到一条晦涩的消息
`: No such file or directory`
请注意,我不收到错误env: node: No such file or directory
,这是我第一次在Ubuntu上安装TypeScript时遇到的错误,因为节点/
NodeJS冲突。
任何人都可以通过tsc
告诉我从命令行运行node
需要做什么,因为我可以按照上面的说明手动启动它?
答案 0 :(得分:13)
我从包管理器安装节点作为nodejs。要解决问题:“没有这样的文件或目录”运行TypeScript,我使用来自https://github.com/joyent/node/issues/3911的digitalmediums sugestion: 只需创建符号链接:
ln -s /usr/bin/nodejs /usr/bin/node
答案 1 :(得分: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')
答案 2 :(得分:3)
我在创建自己的nodejs命令行工具时遇到了同样的问题。我使用netbeans在Windows上创建了该工具,并从那里将其发布到npmjs。在Ubuntu上使用npm安装后我尝试运行它,但是我收到了相同的错误消息。我尝试了一切来修复它,我甚至重新安装了Ubuntu但没有任何效果。
我发现的解决方案非常简单。我创建了一个新的入口点文件(以#!/ usr / bin / env节点开头的文件),并将旧文件的内容复制到其中。我也是这样使用netbeans,但这次是在Ubuntu上。可能文件编码不同。
因此,在您的情况下,只需在将旧的tsc文件复制到其他位置后,在同一位置(/ usr / local / lib / node_modules / typescript / bin / tsc)创建一个新的tsc文件,然后复制并粘贴内容旧的一个到新的。可能这应该由TypeScript开发人员修复。
答案 3 :(得分:3)
在ubuntu上,安装包nodejs-legacy
apt-get install nodejs-legacy
答案 4 :(得分:1)
您可以使用node
运行tsc,而node tsc
代替tsc
。这应该适用于mac / linux / windows。