SAP Spartacus 如何借助env-cmd 实现 B2B 和 B2C 功能启动的无缝切换

举报
汪子熙 发表于 2022/05/18 12:05:32 2022/05/18
【摘要】 在之前的 SAP Spartacus 标准开发中,每次我从 Github 上 clone 了最新的代码后,必须手动修改 environment.ts 里的配置值,将 CX_BASE_URL 和 b2b 修改成实际值:后来我研究了一下 package.json 里定义的脚本:发现使用了 env-cmd 这个工具:env-cmd --no-override -e dev,b2c,$SPA_ENV...

在之前的 SAP Spartacus 标准开发中,每次我从 Github 上 clone 了最新的代码后,必须手动修改 environment.ts 里的配置值,将 CX_BASE_URL 和 b2b 修改成实际值:

后来我研究了一下 package.json 里定义的脚本:发现使用了 env-cmd 这个工具:

env-cmd --no-override -e dev,b2c,$SPA_ENV ng serve

env-cmd 的作用:A simple node program for executing commands using an environment from an env file.

For more complex projects, a .env-cmdrc file can be defined in the root directory and supports as many environments as you want. Simply use the -e flag and provide which environments you wish to use from the .env-cmdrc file.

在项目的根目录下,放置一个名为 .env-cmdrc 的文件,然后使用 -e 标签,指定需要使用 env-cmdrc 文件里定义的哪个 environments 去运行脚本。

在这里插入图片描述

Using multiple environment names will merge the environment variables together. Later environments overwrite earlier ones in the list if conflicting environment variables are found.

如果 -e 后面跟了多个环境名,则每个环境名里包含的变量值,会被 merge 成一个整体。 如果两个环境里都包含了同样的变量值,则后出现的环境的变量值会覆盖先前的环境变量值。

set CX_B2B=true && set CX_BASE_URL=https://spartacus-dev0.azure.com:9002 && yarn start

这个b2b打印出来的值不正确:

CX_BASE应该为 boolean 类型,但是打印出来的值为 ""true ", 这是一个字符串。而 occBaseUrl 的值,9002 后面也多了一个端口号:

在这里插入图片描述

经过研究发现,将 set CX_B2B=true与&&之间的空格删除即可,我用的是 Windows10 操作系统,不知道 Linux 系统上的 shell 有没有这个问题。

修改之后,问题顺利解决:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。