簡體   English   中英

Linux NodeJS全局NPM包“:沒有這樣的文件或目錄”

[英]Linux NodeJS global NPM package “:No such file or directory”

我正在使用Ubuntu 14.04並安裝了nodejsnpm

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

當我運行coffeecoffee-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM