自己的Node.js项目安装在自己的系统上

背景

我对Node.js很新,所以请不要讨厌

我发现NPM非常有用,因为我可以在全局安装Node.js包,然后像独立的可用path应用程序一样使用它们。

这在Windows上工作,这真的让我感到惊讶。

比如我用这种方法安装了UglifyJS,通过npm install -g uglifyjs ,现在我可以从系统的任何地方,从控制台通过uglifyjs <rest of command> (而不是node uglifyjs ..或者其他)运行它。

我想创build自己的独立 Node.js应用程序。 我如何得到星号? 我在这里问,因为大多数教程只涵盖了如何编写一个简单的脚本,然后运行它node (我已经覆盖)


我目前的configuration

package.json

 { "name": "hash", "version": "1.0.0", "author": "Kiel V.", "engines": [ "node >= 0.8.0" ], "main": "hash.js", "dependencies": { "commander" : "1.2.0" }, "scripts": { "start": "node hash.js" } } 

hash.js

 var crypto = require('crypto'), commander = require('commander'); /* For use as a library */ function hash(algorithm, str) { return crypto.createHash(algorithm).update(str).digest('hex'); } exports.hash = hash; /* For use as a stand-alone app */ commander .version('1.0.0') .usage('[options] <plain ...>') .option('-a, --algorithm [algorithm]', 'Hash algorithm', 'md5') .parse(process.argv); commander.args.forEach(function(plain){ console.log( plain + ' -> ' + hash(commander.algorithm, plain) ); }); 

题:

假设我在node-hash目录中只有这两个文件。 我如何安装这个项目,以便以后我可以运行在cmd.exe通过hash -a md5 plaintext -md5 hash -a md5 plaintext就像coffescript,jslint等安装?

你必须添加一些代码到package.json和hash.js,然后你可以运行这个命令从本地文件夹安装包。

 npm install -g ./node-hash 

的package.json

 { "name": "hash", "version": "1.0.0", "author": "Kiel V.", "engines": [ "node >= 0.8.0" ], "bin": { "hash": "hash.js" }, "main": "hash.js", "dependencies": { "commander" : "1.2.0" }, "scripts": { "start": "node hash.js" } } 

hash.js

 #!/usr/bin/env node var crypto = require('crypto'), commander = require('commander'); /* For use as a library */ function hash(algorithm, str) { return crypto.createHash(algorithm).update(str).digest('hex'); } exports.hash = hash; /* For use as a stand-alone app */ commander .version('1.0.0') .usage('[options] <plain ...>') .option('-a, --algorithm [algorithm]', 'Hash algorithm', 'md5') .parse(process.argv); commander.args.forEach(function(plain){ console.log( plain + ' -> ' + hash(commander.algorithm, plain) ); });