我创建了一个节点应用,并在文件中具有一些功能。我想对它们进行测试,所以我要导出功能,但这是一个安全问题,因此我是否只在开发时间才导出它?
这是我所拥有的:
async function AuthenticateHandler(req: Restify.Request, res: Restify.Response, next) { ... });
function shutdownServer() { ... }
module.exports = {
AuthenticateHandler,
shutdownServer
};
要构建,我目前使用Gulp文件并提供args来告诉它正在构建什么环境:
task("Build", series(CopyConfig));
function CopyConfig(cb){
if(arg.env == "dev"){
return src(['config.dev.json'])
.pipe(rename("config.json"))
.pipe(dest('./dist'));
} else if(arg.env == "prod"){
return src(['config.prod.json'])
.pipe(rename("config.json"))
.pipe(dest('./dist'));
}else if(arg.env == "local"){
return src(['config.local.json'])
.pipe(rename("config.json"))
.pipe(dest('./dist'));
}
};
如何仅在开发人员和本地环境中才能导出?
尝试使用当前环境的值设置环境变量,然后将'module.exports'放入if块中。
if(process.env['ENV'] === 'dev'){
module.exports = {};
}
一种选择是使用环境变量,该变量可以在任何文件中访问。您可以将脚本添加到package.json
文件:
"scripts": {
"build:dev": "NODE_ENV='development' gulp"
}
然后,在带有导出文件的文件中,如下所示:
async function AuthenticateHandler(req: Restify.Request, res: Restify.Response, next) { ... });
function shutdownServer() { ... }
module.exports.shutdownServer = shutdownServer;
// conditionally export a function
if (process.env.NODE_ENV === 'development') {
module.exports.AuthenticateHandler = AuthenticateHandler;
}