23

node.jsのreplを構成する方法はありますか?replが開始するたびにjqueryとアンダースコアを自動的に要求したい。node.jsがreplを開始するときにロードするファイル(noderc?)はありますか?

Pythonでの同等の機能は、次のように編集~/.ipython/ipy_user_conf.pyすることです。

import_mod('sys os datetime re itertools functools')
4

5 に答える 5

23

そのような構成ファイルは知りませんが、モジュール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)または何でも:)

于 2011-07-21T00:28:37.957 に答える
5

私は今日これを試しましたが.start、議論が必要でした。useGlobal:trueまた、それは重要だったと思います。私は以下を使用して終了しました:

var myrepl=require('repl').start({useGlobal:true});
myrepl.context['myObj']=require('./myObject');

このコードをに保存すると、REPLでアクセスtest.jsできます。node test.jsmyObj

于 2012-10-04T21:26:08.313 に答える
5

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ませんが、現時点では十分便利です。

于 2015-11-23T21:24:13.307 に答える
5

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オプションに関する最新情報については、こちらをご覧ください。

于 2017-02-20T12:32:45.103 に答える
1

物事をシンプルに保つために、ここで私が言いました。

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ます、そして私はグローバルを気にしません、なぜなら私はただ担当者の周りをめちゃくちゃにしているからです。

于 2016-12-06T00:36:55.983 に答える