2015-10-12 34 views
0

我是Node.js的新手。我刚刚读取了REPL api,我假定设置环境变量NODE_REPL_HISTORY""将关闭生成命令行历史文件的.save命令。我错了吗?如何在Node.js中禁用.save命令?

所以我决定通过process模块进行设置:

var repl = require("repl"); 

process.env['NODE_REPL_HISTORY'] = ""; 

var replServer = repl.start({ 
    prompt:"my-app > ", 
}); 

console.log(process.env); 

var add = function(a,b){ 
    return a+b; 
}; 

replServer.context.foo = "bar"; 

replServer.context.add = add; 

不幸,REPL仍产生命令行历史文件。

+0

你能尝试* *前移动环境变量设置了'repl.start':

repl.defineCommand('save', { help: 'Save all evaluated commands in this REPL session to a file', action: function(file) { try { fs.writeFileSync(file, this.lines.join('\n') + '\n'); this.outputStream.write('Session saved to:' + file + '\n'); } catch (e) { this.outputStream.write('Failed to save:' + file + '\n'); } this.displayPrompt(); } }); 

您可以通过replServer手动删除它删除这个命令? – poke

+0

不幸的是,它不工作 –

+0

太糟糕了:(嗯,值得一试 – poke

回答

0

.save命令是definedlib/repl.js无条件地,即它是存在的,不管任何环境变量。

delete replServer.commands.save; 
+0

谢谢,我不再怀疑是否存在'.save'关于环境变量。 –