node.jsのreplを構成する方法はありますか?replが開始するたびにjqueryとアンダースコアを自動的に要求したい。node.jsがreplを開始するときにロードするファイル(noderc?)はありますか?
Pythonでの同等の機能は、次のように編集~/.ipython/ipy_user_conf.py
することです。
import_mod('sys os datetime re itertools functools')
node.jsのreplを構成する方法はありますか?replが開始するたびにjqueryとアンダースコアを自動的に要求したい。node.jsがreplを開始するときにロードするファイル(noderc?)はありますか?
Pythonでの同等の機能は、次のように編集~/.ipython/ipy_user_conf.py
することです。
import_mod('sys os datetime re itertools functools')
そのような構成ファイルは知りませんが、モジュールfoo
を用意してREPLで使用できるようにする場合は、以下を含むbar
ファイルを作成できます。myrepl.js
var myrepl = require("repl").start();
["foo", "bar"].forEach(function(modName){
myrepl.context[modName] = require(modName);
});
そして、それを一緒に実行するとnode myrepl.js
、それらのモジュールが利用可能なREPLを取得します。
この知識を身#!/path/to/node
に付ければ、一番上に置いて直接実行可能にすることも、repl.jsモジュールのバージョンを変更することもできます(ソースはhttps://github.com/joyent/node/blob/master/lib/で入手できます)。検査用のrepl.js)または何でも:)
私は今日これを試しましたが.start
、議論が必要でした。useGlobal:true
また、それは重要だったと思います。私は以下を使用して終了しました:
var myrepl=require('repl').start({useGlobal:true});
myrepl.context['myObj']=require('./myObject');
このコードをに保存すると、REPLでアクセスtest.js
できます。node test.js
myObj
Node.jsの新しい機能である可能性があります(この質問は4年前のものであるため)が、ipythonのようにrepl履歴をロードして保存することができます。
.break - While inputting a multi-line expression, sometimes you get lost or just don't care about completing it. .break will start over.
.clear - Resets the context object to an empty object and clears any multi-line expression.
.exit - Close the I/O stream, which will cause the REPL to exit.
.help - Show this list of special commands.
.save - Save the current REPL session to a file
.save ./file/to/save.js
.load - Load a file into the current REPL session.
.load ./file/to/load.js
シェルの起動時にこれを自動的に実行する方法がわかり.load something
ませんが、現時点では十分便利です。
2017年2月-受け入れられた回答に同意しますが、ここにもう少し解説を追加したいと思います。
次のようにセットアップしたい(私のMacのホームディレクトリから)
.node
├── node_modules
│ ├── lodash
│ └── ramda
├── package.json
└── repl.js
その場合、repl.jsは次のようになります。
const repl = require('repl');
let r = repl.start({
ignoreUndefined: true,
replMode: repl.REPL_MODE_STRICT
});
r.context.lodash = require('lodash');
r.context.R = require('ramda');
// add your dependencies here as you wish..
そして最後に、.bashrc
または.zshrc
ファイルなどにエイリアスを配置します(シェルの設定によって異なります)-次のようになります。
alias noder='node ~/.node/repl.js'
この構成を使用するにはnoder
、コマンドラインから入力するだけです。上記では、常に参加したいので、宣言などのためにコンソールに出力しstrict mode
たくないことも指定しました。undefined
repl
特にrepl.start
オプションに関する最新情報については、こちらをご覧ください。
物事をシンプルに保つために、ここで私が言いました。
repl.js:
// things i want in repl
global.reload = require('require-nocache')(module) // so I can reload modules as I edit them
global.r = require('ramda') // <3 http://ramdajs.com/
// launch, also capture ref to the repl, in case i want it later
global.repl = require('repl').start()
私はこれを正しいと感じるように呼び出すことができnode repl
ます、そして私はグローバルを気にしません、なぜなら私はただ担当者の周りをめちゃくちゃにしているからです。