Npm 设置环境变量以修改create-react应用程序的package.json

Npm 设置环境变量以修改create-react应用程序的package.json,npm,environment-variables,create-react-app,package.json,Npm,Environment Variables,Create React App,Package.json,今天我发现在React中使用了环境变量,我喜欢它!特别是使用react router,并通过以下方式填充组件的basename属性: <BrowserRouter basename={`${process.env.REACT_APP_BASENAME}`}> </BrowserRouter> 有可能吗?您可以像这样在package.json中使用环境变量 跨平台 { "name": "apoc", "version": "0.1.0", "private":

今天我发现在React中使用了环境变量,我喜欢它!特别是使用react router,并通过以下方式填充
组件的
basename
属性:

<BrowserRouter basename={`${process.env.REACT_APP_BASENAME}`}>
</BrowserRouter>

有可能吗?

您可以像这样在package.json中使用环境变量

跨平台

{
  "name": "apoc",
  "version": "0.1.0",
  "private": true,
  "homepage": "cross-var echo ${REACT_APP_BASENAME}",
  "dependencies": {....

通过查看node modules/react scripts/config中的一些文件,我在
webpack.config
文件中发现
PUBLIC\u URL
以HTML文件中的
%PUBLIC\u URL%
和JavaScript中的
process.env.PUBLIC\u URL
的形式提供给应用程序


由于目标是能够在JavaScript中使用相同的变量,因此实际上没有必要在任何.env文件中重复相同的路径:只需在
package.json
中的
“homepage”
行中设置一次路径,您就可以在任何需要的地方使用
PUBLIC\u URL
,HTML或JS,虽然我的终端告诉我
该项目是在假设它位于cross var%20echo%20$%7BREACT_APP_BASENAME%7D/
的情况下构建的,但你怎么看?你在windows上吗?实际上,我没有得到的是
package.json中的
homepage
参数是修改
index.html中
%PUBLIC\u URL%
的参数,对吗?这意味着如果
index.html
中不再有
%PUBLIC\u URL%
,那么
homepage
参数就没用了,不是吗?在unix系统上,您可以使用“homepage”:“echo${REACT\u APP\u BASENAME}”,关键是,如果
index.html
位于子目录中,并且如果我需要
index.html
和其他文件(例如一些React组件)中的子目录路径,那么
主页
参数本身就不起作用,因为它只是替换
index.html
中的
%PUBLIC\u URL%
,因此,我需要为其他文件实现env变量。接下来的问题是:为了保持干燥原则,如何使用
.env.production
文件中定义的env变量更改
主页
参数?
{
  "name": "apoc",
  "version": "0.1.0",
  "private": true,
  "homepage": "cross-var echo ${REACT_APP_BASENAME}",
  "dependencies": {....