在我的项目文件夹project
中,我有一个像这样的文件utils.js
global.root_path = process.cwd();
global.custom_require = function() {
console.log('custom require called');
}
我想在每个节点执行中包含此文件,以便在project
中的每个js文件中,我可以调用custom_require
,或者访问global.root_path
,因为我已经在内置函数require
。
您知道是否有解决方案(命令行选项,环境变量或其他)来实现这一目标吗?
更新
我不想在每个文件中包含utils.js
,在这种情况下,我不需要修改global
对象。
谢谢!
答案 0 :(得分:1)
只需require
它。示例app.js
:
require('./utils.js');
var express = custom_require('express');
var app = express();
var port = process.env.PORT || 3000;
app.listen(port);
然后,你可以做(在终端)
node app
只要您require
包含全局声明的代码,就可以在事后使用require
d之内的任何文件中的那些全局变量。
您很可能不希望自定义“插件”在本地运行时更改所有应用程序的行为,因此最好远离这种模式。相反,您可能想要创建一个模块,在其上使用npm link
,然后在项目的目录中使用npm link something
,其中something
是模块名称。
然后每个项目可以在一开始就添加一行,如require('something');
。由于something
中的行为,更改npm link
会立即影响包含它的所有项目。