node.js
cliに起動スクリプトを追加するにはどうすればよいですか?例えば。いくつかのオプションを設定していますか?NodeJS CLIの起動スクリプトを持っています
編集:私は上の(bashrc
に似)つまり、私は私のシステムのどの部分でnode
CLIを起動し、それが起動スクリプトをプリロード持つことができるようにしたい、サーバー側について話している グローバルレベル。
node.js
cliに起動スクリプトを追加するにはどうすればよいですか?例えば。いくつかのオプションを設定していますか?NodeJS CLIの起動スクリプトを持っています
編集:私は上の(bashrc
に似)つまり、私は私のシステムのどの部分でnode
CLIを起動し、それが起動スクリプトをプリロード持つことができるようにしたい、サーバー側について話している グローバルレベル。
あなたの投稿を読んだとき、私は現在のNode.js REPLが吸うことに気付きました!そこで、あなたの投稿の機能の基本的なデモを行い、それをrattleと呼びました。
#!/usr/bin/env node
これはシェバングは、それはあなたが知っている、それはノードとして
const repl = require("repl"),
vm = require("vm"),
fs = require("fs"),
path = require("path"),
spawn = require("child_process").spawn,
package = require("./package");
インポートすべてのパッケージを実行していますことを確認している。ここで
、私はコードの各行を説明しますドリル
function insertFile(file, context) {
fs.readFile(file, function(err, contents) {
if (err)
throw err;
vm.runInContext(contents, context);
});
}
私は(REPLがある)VMコンテキストにファイルを挿入する機能を定義し
if (process.argv.includes("--global")) {
console.log(path.resolve(__dirname, ".noderc"));
ディスプレイグローバル.noderc
/** Hijack the REPL, if asked **/
} else if (process.argv.length < 3 || process.argv.includes("-i") || process.argv.includes("--interactive")) {
の場所これは、コードの肉が開始されます。ユーザがローカル.nodercあるかどう挿入がある場合は、標準のプロンプトで、REPLを作成REPLモードに
console.log(`rattle v${package.version}`);
var cmdline = repl.start("> "),
context = cmdline.context;
を入力して、VMコンテキストに
/** Insert config files **/
fs.access(localrc = path.resolve(process.cwd(), ".noderc"), function(noLocal) {
if (!noLocal) {
insertFile(localrc, context);
}
});
テストを取得したい場合、これは検出しグローバル.nodercのコンテキスト
fs.access(globalrc = path.resolve(__dirname, ".noderc"), function(noGlobal) {
if (!noGlobal && globalrc !== localrc) {
insertFile(globalrc, context);
}
});
テストにそれ、およびそれに
} else {
/** Defer to node.js **/
var node = spawn("node", process.argv.slice(2));
node.stdout.pipe(process.stdout);
node.stderr.pipe(process.stderr);
}
を挿入
残りの部分はREPLのものではないため、コードをノードに渡します
これは書くのは楽しいものでした。
Good Luck!
クライアント側で[JavaScript require()が重複している可能性があります](http://stackoverflow.com/questions/5168451/javascript-require-on-client-side) – Arthur
あなたはおそらく自分のエミュレートする必要がありますREPL(https://nodejs.org/api/repl.html)APIを使用してreplを実行します。すぐに私は家に帰るだろう。あなたがそれを理解しなければ、基本的なプロトタイプを書くだろう – MayorMonty