首页 > 解决方案 > 使用不同环境时的条件导入/导出

问题描述

我目前正在 AWS 上使用 node14 开发 Lambda 函数,但是当我想在本地开发它时遇到问题。

在我的开发环境中,我有一个需要连接到 AWS 的公司代理。在这种情况下,我使用aws-sdk-proxy库。但是,我不想在生产中使用这个包(因为 Lambda 已经aws-sdk注入了 lambda 核心)。

所以,我创建了这个片段来执行两个环境之间的切换:

// aws.js
import AWSPROD from 'aws-sdk'
import AWSDEV from 'aws-sdk-proxy'
import config from '../lib/Config.js'
import logger from './logger.js'

let AWS = null

if (config.get('ENVIRONMENT') === 'dev') {
  logger.debug('[DEV] Using aws-sdk-proxy')
  AWS = AWSDEV
} else {
  AWS = AWSPROD
}

export default AWS

不是很干净,但它有效。使用此代码,我可以执行以下操作:

import AWS from './aws.js'

现在的问题是,这段代码意味着我必须提供aws-sdk-proxy到我的 package.json 的“prod”依赖项中。

我认为它破坏了 lambda 的性能,因为代码引发了 9Mo(没有 2Mo),但我希望保持这种调用“AWS”SDK [二维代码块]的方式。

我尝试使用required或动态import,但这些解决方案都不起作用。

您对改进我的代码有什么建议吗?

PS:

标签: node.jsaws-lambdanode-modules

解决方案


推荐阅读