{这与Twitter无关}
一个有趣的问题,有趣的是,它可能是愚蠢的,你可以笑,但我至少会得到这个该死的痒的答案。
目前我使用
var Bootstrap = require('library/Bootstrap');
Bootstrap.run();
如果我能在Bootstrap index.js中做这样的事情,真正伟大的事情
module.exports.Bootstrap = My_Bootstrap;
并且像这样打电话给它
require('library/Bootstrap');
Bootstrap.run();
无需向我的空间声明另一个变量,有没有办法做到这一点,或者我是在盯着屏幕想知道,做梦,迷路,回来浪费时间?
修改 所以这就是我最后所做的:
我创建了一个单一的全局对象,并且只添加了重要的模块,因此可以访问和实例化它们。这结果是一个惊人的答案和解决方案,非常方便
答案 0 :(得分:6)
您可以修改global
对象。这类似于浏览器上的窗口对象。因此,您可以为您的模块编写一个包装器,如下所示:
global.Bootstrap = My_Bootstrap
全局对象在模块之间共享。然后,无论身在何处,都可以使用Bootstrap
。
答案 1 :(得分:2)
不,你必须声明变量。但是,您可以进入require
函数,并为您完成这项工作。我对Bootstrap的内部架构并不是很熟悉,但看起来像这样的东西应该可以解决这个问题:
// put this in some out-of-the-way cubbyhole somewhere
var oldRequire = require;
function require(path) {
Bootstrap = oldRequire(path);
}
// and this would go in your main file
require("library/Bootstrap");
Bootstrap.run();
答案 2 :(得分:1)
你不能按照你所说的方式去做,这意味着一种全球化,这几乎肯定不是你想要的。
然而,你能做的是:
require('your_library').call(this,arg1,arg2);
例如,您可以使用node-validator库。
您打算像以下一样使用它:
sanitize = require('validator').sanitize
var str = sanitize('aaaaaaaaab').ltrim('a');
但你可以跳过所有这些并做
var str = require('validator').sanitize('aaaaaaaaab').ltrim('a')
据我所知,无论是在内存/速度方面,都没有任何缺点。
在您的具体情况下,您知道可以跳过一点......
档案:MyBootStrap.js
Module.exports = MyBootstrap
文件:index.js(或其他)
require('library/Bootstrap.js')()