[英]"Error: ENOENT: no such file or directory" after installing global npm package
[英]Linux NodeJS global NPM package “:No such file or directory”
我正在使用Ubuntu 14.04並安裝了nodejs
和npm
:
sudo apt-get install nodejs npm
然后我創建了一個符號鏈接,使包能夠使用node
解釋器(而不是nodejs
):
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
我安裝了coffee-script
(用於測試目的)和我自己的包, mangarack
,用:
sudo npm -g install coffee-script mangarack
當我運行coffee
( coffee-script
一部分)時,該包運行正常。 如果我運行mangarack
,我會得到:
: No such file or directory.
我的package.json
有以下內容:
"bin": {
"mangarack": "./bin/mangarack"
},
該文件包含:
#!/usr/bin/env node
require('../lib/cli/index');
我看了一下coffee-script
是如何做到的,看起來我的require
語句是絕對錯誤的,所以我用console.log
語句替換它,看看文件是否實際在node
運行。 它沒有。 我錯過或錯過配置什么來啟用基於Linux的計算機來運行此程序包?
完整源代碼參考:
問題是文件bin/mangarack
使用回車,這會導致linux環境出錯。 看看我得到了什么:
$ mangarack --help
env: node\r: No such file or directory
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0d 0a
0000015
注意node
后面的字符\\r
(十六進制模式下為0d
)。 你應該刪除它。
解決方案:使用$ git config core.autocrlf
設置項目,然后提交更改。 請參閱https://help.github.com/articles/dealing-with-line-endings/
修復后的預期結果應為:
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0a
0000015
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.