我是一名web开发的新手,最近开始将我的简单web应用程序推送到GitHub页面。我很快发现,在集成了
我的问题是,我该如何设置我的
我的
当我运行
基本上,我想做的是,在开发过程中,我的
react-router
后,我的页面无法呈现,因为我的dev和prod URL链接不同。我的问题是,我该如何设置我的
package.json
和.env
文件,以便正确呈现我的URL?我的
.env
文件看起来像这样:REACT_APP_PUBLIC_URL="my-site"
我的package.json
长这样:
"scripts": {
"start": "NODE_ENV=development react-scripts start",
"start:prod": "NODE_ENV=production react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -d build"
}
在我的Index.js
文件中,我正在执行以下操作:
if (process.env.NODE_ENV === "production") {
require("dotenv").load();
}
console.log("PROCESS.ENV.NODE_ENV: ", process.env.NODE_ENV); // This prints "development"
console.log("PROCESS.ENV.PUBLIC_URL: ", process.env.REACT_APP_PUBLIC_URL); // This prints "my-site"
当我运行
npm run start:prod
时,我认为它会将NODE_ENV
设置为production
,但似乎并没有这样做。基本上,我想做的是,在开发过程中,我的
process.env.PUBLIC_URL
应该为""
,而在生产环境中,它应该为"my-site"
。这样,我的路由器就可以正确地呈现相应的视图。谢谢你的帮助!
console.log(process.env.REACT_APP_PUBLIC_URL)
打印出"my-site"
,但是process.env.NODE_ENV
打印出development
,而我期望它打印出production
,即使我执行了npm run start:prod
。 - Timstart
和prod
之间放置空格,我正在运行npm run start:prod
。 - Tim"start": "NODE_ENV=production react-scripts start", "start:prod": "NODE_ENV=development react-scripts start",
- rc_dzNODE_ENV
是development
:-( - Tim