在我的.env中,我有以下变量:
SHOPIFY_STORE_URL=mystore.myshopify.com
现在我想在npm脚本中使用这个变量:
"scripts": { "shopify-login": "shopify login --store=SHOPIFY_STORE_URL", },
"scripts": {
"shopify-login": "shopify login --store=SHOPIFY_STORE_URL",
},
所以$ npm run shopify-login应该执行$ shopify login --store=mystore.myshopify.com我如何才能做到这一点?
$ npm run shopify-login
$ shopify login --store=mystore.myshopify.com
cmssoen21#
当你在Linux/Mac操作系统上时,这应该可以工作:
# .envSHOPIFY_STORE_URL=mystore.myshopify.com
# .env
我的测试案例:
"scripts": { "shopify-login": "source .env && echo $SHOPIFY_STORE_URL" }
"shopify-login": "source .env && echo $SHOPIFY_STORE_URL"
}
您的测试用例:
"scripts": { "shopify-login": "source .env && shopify login --store=$SHOPIFY_STORE_URL", },
"shopify-login": "source .env && shopify login --store=$SHOPIFY_STORE_URL",
mfuanj7w2#
对于跨平台的答案,我发现使用cross-env是成功的。这允许您使用cross-env-shell命令直接引用环境变量,而不管环境如何。如果没有在本地.env文件中设置环境变量,它也可以工作。所以在你的情况下,
cross-env-shell
"scripts": { "shopify-login": "cross-env-shell shopify login --store=$SHOPIFY_STORE_URL", },
"shopify-login": "cross-env-shell shopify login --store=$SHOPIFY_STORE_URL",
cross-env-shell工作,而不是通常的cross-env模块,因为$符号被直接解释。根据他们的Github:如果你想传递给cross-env一个包含你想要解释的特殊shell字符的命令,那么使用cross-env-shell。否则,坚持跨环境。
cross-env
$
2条答案
按热度按时间cmssoen21#
当你在Linux/Mac操作系统上时,这应该可以工作:
我的测试案例:
您的测试用例:
mfuanj7w2#
对于跨平台的答案,我发现使用cross-env是成功的。
这允许您使用
cross-env-shell
命令直接引用环境变量,而不管环境如何。如果没有在本地.env文件中设置环境变量,它也可以工作。所以在你的情况下,cross-env-shell
工作,而不是通常的cross-env
模块,因为$
符号被直接解释。根据他们的Github:如果你想传递给cross-env一个包含你想要解释的特殊shell字符的命令,那么使用cross-env-shell。否则,坚持跨环境。