Javascript Web包将变量传递到启动/生成脚本中
我有一个React应用程序,部署时内置在Docker容器中。一切正常,没有问题。我有一个.env文件用于开发,其中包含一个Javascript Web包将变量传递到启动/生成脚本中,javascript,node.js,reactjs,webpack,Javascript,Node.js,Reactjs,Webpack,我有一个React应用程序,部署时内置在Docker容器中。一切正常,没有问题。我有一个.env文件用于开发,其中包含一个API\u URL变量,还有一个.env.prod文件用于部署另一个API\u URL。.env文件直接在start/build脚本中传递,如下所示(对于warn start): 因此,API\u URL变量位于该脚本中使用的.env文件中。我的问题是-我能否以某种方式将变量传递给纱线开始或纱线构建?当我尝试直接在脚本中添加变量进行测试时,它没有被选中,比如:“start”:
API\u URL
变量,还有一个.env.prod文件用于部署另一个API\u URL
。.env文件直接在start/build脚本中传递,如下所示(对于warn start
):
因此,
API\u URL
变量位于该脚本中使用的.env文件中。我的问题是-我能否以某种方式将变量传递给纱线开始
或纱线构建
?当我尝试直接在脚本中添加变量进行测试时,它没有被选中,比如:“start”:“cross-env-NODE\u-env=development-API\u-URL=“my-API-URL”env-cmd.env-NODE-server”
用法正确,只是覆盖了该键
您应该使用--no override
标志,这样它就不会被覆盖
最后一行应该是:
API\u URL=“myapi URL”env\u cmd.env——无覆盖节点服务器“
这听起来像是解决了我一半问题的方法-我仍然需要一种直接从终端传递变量的方法。伪代码:纱线开始变量=值
。因此,如果我在package.json中向脚本本身添加--no override
,是否可以通过某种方式从终端传递变量?我尝试了:cross-env variable=value-warn start
,但它没有被拾取,我忘了将新变量添加到process.env
。使用--无覆盖
标志的解决方案是正确的。最重要的是,上面的线路直接从终端开始工作。
"start": "cross-env NODE_ENV=development env-cmd .env node server"