2011-07-20 25 views
17

node.js'in repl'sini yapılandırmanın bir yolu var mı? Tekrar başladığında jquery'yi ve otomatik olarak altını çizmek istiyorum. Node.js, replmeye başladığında yüklediği bir dosya (noderc?) Var mı?node.js için betiği başlat repl

Python eşdeğer olan ~/.ipython/ipy_user_conf.py düzenlemek için: Ben böyle bir yapılandırma dosyasının bilmiyorum

import_mod('sys os datetime re itertools functools') 

cevap

16

ancak modülleri foo ve bar REPL satışa sunulacak yapmak istiyorsanız, yapabilirsiniz

var myrepl = require("repl").start(); 
["foo", "bar"].forEach(function(modName){ 
    myrepl.context[modName] = require(modName); 
}); 

ve ne zaman kullanılabilir olan modüllerde REPL olsun node myrepl.js ile yürütün: içeren bir dosya myrepl.js oluşturun.

bu bilgiyle Silahlı üst kısımda #!/path/to/node koymak ve yürütülebilir doğrudan yapmak veya (muayene için https://github.com/joyent/node/blob/master/lib/repl.js mevcut kaynak) repl.js modülünün sürümünü değiştirebilir veya her neyse :)

+0

Mükemmel! Modülleri takma adlarla yükleyen bir varyasyon yaptım. var modules = {jquery: '$', alt çizgi: '_und'}; için (modüllerdeki var mod) { my_repl.context [modüller [mod]] = gerektirir (mod);} – hekevintran

4

ben Bugün bunu denedim ama .start bir argüman gerektirdi. Ayrıca useGlobal:true'un da önemli olduğunu düşünüyorum.

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

Kaydetme Bu kodu test.js ben bir node test.js sonra Repl içinde myObj erişmek yapabilirdi: Kullandığım sarılır.

+0

@ nicolaskruchten'ın örnek çalışmasını almak için buna ihtiyacım vardı. İkinize de teşekkürler! – Nate

2

Node.js'nin daha yeni bir özelliği olabilir (bu soru dört yaşında olduğundan), ancak ipython gibi you can load and save repl history.

.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 

Ben kabuk başlatırken otomatik olarak bu yürütmek için nasıl bilemiyorum ama .load something anda benim için yeterince uygundur.

1

İşleri kolaylaştırmak işte burayı kestirdim.

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() 

Birazdan hissediyor node repl ile bu çağırabilir, ve ben sadece repl etrafında messin, çünkü biraz genel ya umurumda değil.

2

Şub 2017 - kabul edilen cevaba katılıyorum iken, burada biraz daha yorum eklemek istedim. kurulum için gibi

şöyle

.node ├── node_modules │   ├── lodash │   └── ramda ├── package.json └── repl.js

Sonra repl (benim Mac ev dizininden).(Kabuk prefs bağlı)

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.. 

Ve nihayet, vb .bashrc veya .zshrc dosya içine bir takma ad koymak - gibi bir şey: js şöyle benzeyebilir

alias noder='node ~/.node/repl.js'

Şimdi, hiç Bu yapılandırmayı kullanın, sadece komut satırından noder yazmanız gerekir. Yukarıda, ben de hep strict mode olmak istiyorum ve repl.start seçenekleri here

bkz bildirimleri vs. repl üzerine güncel bilgiler için

için ve özellikle konsola baskılı undefined istemediklerini belirtilen