将模块函数传递给另一个文件中的函数
我不确定这里发生了什么,但是一直在困扰着我。 marked
节点markdownparsing器的工作原理是这样的:
var marked = require('marked'); marked.setOptions({ mathjax : false });
这一切工作。 但是,我正在build立一个插件系统,我想将标记的模块函数从另一个文件传递到函数中,并在该函数中设置选项:
// main.js var marked = require('marked'); var plugin = require('./plugin'); plugin(marked); marked("# my markdown\n $$5 + 5$$", function(err, result) { // this result still parses mathjax. Setting the option in the main // file will disable mathjax. console.log(result); }); // plugin.js module.exports = function(marked) { marked.setOptions({ mathjax: false }); }
被marked
函数被正确地传递给我的插件函数, setOptions
函数被调用,但是当我在主脚本中使用marked
时,选项没有被设置。 如果我在主脚本中设置了选项,它就可以工作。
我有点不确定是否marked
为一个Function
和它的setOptions()
可能是这个罪魁祸首?
有什么想法吗?
你说你换了kramed, 看着 setOptions
的定义 ,它返回一个kramed
的实例。 因此,在另一个文件中设置选项可能不会突变kramed
中的全局实例main.js
。 至less改为以下作品:
// main.js var kramed = require('kramed'); var plugin = require('./plugin'); kramed = plugin(kramed); kramed("# my markdown\n $$5 + 5$$", function(err, result) { console.log(result); }); //plugin.js module.exports = function(kramed) { return kramed.setOptions({ mathjax: false }); }