在之前的 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.eastus… && yarn start
[外链图片转存失败, 源站可能有防盗链机制, 倡议将图片保留下来间接上传 (img-F2e1FWFU-1618206305589)(https://upload-images.jianshu…
这个 b2b 打印进去的值不正确:
CX_BASE 应该为 boolean 类型,然而打印进去的值为 “”true “, 这是一个字符串。而 occBaseUrl 的值,9002 前面也多了一个端口号:
通过钻研发现,将 set CX_B2B=true 与 && 之间的空格删除即可,我用的是 Windows10 操作系统,不晓得 Linux 零碎上的 shell 有没有这个问题。
批改之后,问题顺利解决:
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: