2014-02-13 62 views
2

我試圖安裝一個我剛剛使用npm編寫的自定義模塊。我希望能夠像我的電腦上的其他命令一樣運行它。節點 - 運行全局安裝的自定義模塊

其稱爲 「NAWK」

的package.json

{ 
    "name": "nawk", 
    "preferGlobal": true, 
    "version": "0.0.1", 
    "author": "My Name <[email protected]>", 
    "description": "a simpler version of awk", 
    "bin": { 
    "nawk": "./index.js" 
    }, 
    "scripts": { 
    "start": "node index" 
    }, 
    "dependencies" : { 
    }, 

    "license": "MIT", 
    "engines": { 
    "node": ">=0.6" 
    } 
} 

index.js

require('fs'); 

var readline = require('readline'); 

var args = process.argv; 
args.shift(); 
args.shift(); 


var rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout, 
    terminal: false 
}); 

rl.on('line', function (line) { 
    var message = ''; 

    var tokens = line.split(/\s+/); 

    process.argv.forEach(function(index){ 
     index = +index; 
     var val = null; 

     if(index >= 0){ 
      val = tokens[+index]; 
     } else { 
      val = tokens[tokens.length + +index - 1]; 
     } 

     if(val){ 
      message += val + '\t'; 
     } 

    }); 
    if(message){ 
     console.log(message); 
    } 
}); 

我可以安裝它,但是當我去運行它,我得到一個語法第一行的錯誤。從目錄運行時不會發生這種情況。

我安裝它像這樣

> sudo npm install -g $(pwd) 

然後我嘗試這樣運行它。

> echo hi how are you | nawk 0 -1 
/usr/local/share/npm/bin/nawk: line 1: syntax error near unexpected token `'fs'' 
/usr/local/share/npm/bin/nawk: line 1: `require('fs');' 

回答

8

,我需要把它添加到索引文件

#!/usr/bin/env node 

require('fs'); 
var readline = require('readline'); 

... 
+0

頂部我從未有過這個問題(我只寫了一個模塊NPM),MAIS由於文件encodage。 – Vadorequest

相關問題