我正在尝试安装我刚刚使用 npm 编写的自定义模块。我希望能够像在我的计算机上运行任何其他命令一样运行它。
它叫做“nawk”
包.json
{
"name": "nawk",
"preferGlobal": true,
"version": "0.0.1",
"author": "My Name <xxxxxxxxxx@gmail.com>",
"description": "a simpler version of awk",
"bin": {
"nawk": "./index.js"
},
"scripts": {
"start": "node index"
},
"dependencies" : {
},
"license": "MIT",
"engines": {
"node": ">=0.6"
}
}
索引.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');'
最佳答案
我需要将它添加到索引文件的顶部
#!/usr/bin/env node
require('fs');
var readline = require('readline');
...
关于javascript - Node - 运行全局安装的自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765607/