Serverless-Devs/core

setupEnv() 是否需要适当优化?

DevDengChao opened this issue · 2 comments

https://github.com/Serverless-Devs/core/blob/master/src/common/execCommand/getTemplatePath.ts#L52-L65

async function setupEnv(templateFile: string) {
  const spath = path.dirname(templateFile);
  require('dotenv').config({ path: path.join(spath, '.env') }); // Q1
  const data = await getYamlContent(templateFile);
  const { services } = data;
  for (const key in services) {  // Q2
    const element = services[key];
    let codeUri = get(element, 'props.function.codeUri');
    if (codeUri) {
      codeUri = path.isAbsolute(codeUri) ? codeUri : path.join(spath, codeUri);
      require('dotenv').config({ path: path.join(codeUri, '.env') }); // Q1
    }
  }
}

Q1: 是否需要先检查 .env 文件是否存在再加载本地的环境变量配置?
Q2: 是否需要对 services 进行判空再遍历?

相关内容:
#78 中对于 transforYamlPath 的测试用例需要模拟 s.yaml 中包含 services 属性。

https://github.com/Serverless-Devs/core/blob/master/src/common/execCommand/getTemplatePath.ts#L52-L65

async function setupEnv(templateFile: string) {
  const spath = path.dirname(templateFile);
  require('dotenv').config({ path: path.join(spath, '.env') }); // Q1
  const data = await getYamlContent(templateFile);
  const { services } = data;
  for (const key in services) {  // Q2
    const element = services[key];
    let codeUri = get(element, 'props.function.codeUri');
    if (codeUri) {
      codeUri = path.isAbsolute(codeUri) ? codeUri : path.join(spath, codeUri);
      require('dotenv').config({ path: path.join(codeUri, '.env') }); // Q1
    }
  }
}

Q1: 是否需要先检查 .env 文件是否存在再加载本地的环境变量配置? Q2: 是否需要对 services 进行判空再遍历?

相关内容: #78 中对于 transforYamlPath 的测试用例需要模拟 s.yaml 中包含 services 属性。

已优化,待发布。

更新到2.1.2 版本已经发布