SAP Spartacus 如何借助env-cmd 实现 B2B 和 B2C 功能启动的无缝切换
在之前的 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 有沒有這個問題。
修改之后,問題順利解決:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Spartacus 如何借助env-cmd 实现 B2B 和 B2C 功能启动的无缝切换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 闲鱼有客服吗客服电话多少 闲鱼找在线客服
- 下一篇: SAP Spartacus unit d