如何在npm脚本中使用.env变量

vof42yt1  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(142)

在我的.env中,我有以下变量:

  1. SHOPIFY_STORE_URL=mystore.myshopify.com

现在我想在npm脚本中使用这个变量:

  1. "scripts": {
  2. "shopify-login": "shopify login --store=SHOPIFY_STORE_URL",
  3. },

所以$ npm run shopify-login应该执行$ shopify login --store=mystore.myshopify.com
我如何才能做到这一点?

cmssoen2

cmssoen21#

当你在Linux/Mac操作系统上时,这应该可以工作:

  1. # .env
  2. SHOPIFY_STORE_URL=mystore.myshopify.com

我的测试案例:

  1. "scripts": {
  2. "shopify-login": "source .env && echo $SHOPIFY_STORE_URL"
  3. }

您的测试用例:

  1. "scripts": {
  2. "shopify-login": "source .env && shopify login --store=$SHOPIFY_STORE_URL",
  3. },
mfuanj7w

mfuanj7w2#

对于跨平台的答案,我发现使用cross-env是成功的。
这允许您使用cross-env-shell命令直接引用环境变量,而不管环境如何。如果没有在本地.env文件中设置环境变量,它也可以工作。所以在你的情况下,

  1. "scripts": {
  2. "shopify-login": "cross-env-shell shopify login --store=$SHOPIFY_STORE_URL",
  3. },

cross-env-shell工作,而不是通常的cross-env模块,因为$符号被直接解释。根据他们的Github:
如果你想传递给cross-env一个包含你想要解释的特殊shell字符的命令,那么使用cross-env-shell。否则,坚持跨环境。

相关问题