我正在尝试使用pwa
(reactjs
)构建一个cra
应用。我的第一个实现将是push
中的notification
/ pwa
。现在,我已经阅读了建议,应该始终在通过npm run build
构建应用程序时进行测试。到目前为止,我发现,通过push
服务器处理了向客户端(node.js
)的通知。另外,我还是node.js
服务器的初学者。我设法在一个项目中将服务器和客户端区分开,并通过命令npm start
同时运行两者(端口5000上的App和端口5001上的Server)。
我在项目的子文件夹“服务器”中实现了服务器。
在我的package.json
文件中,我输入了一个代理,以使应用程序知道服务器在哪个端口上运行。
"proxy": "http://localhost:5001/"
我现在的问题是,如果您通过npm run build
创建了应用程序,则该如何运行服务器。我已经使用命令serve -s build
进行了尝试,另外还通过node index.js
尝试了另一个命令窗口。
但是,该应用程序无法识别package.json
文件中的代理,并尝试将数据发送到同一端口,这会导致404
错误消息。可能这是一个初学者的问题,但到目前为止我找不到合适的东西。
如果有帮助,请查看我的package.json
文件。
{
"name": "pwa",
"version": "0.1.0",
"private": true,
"dependencies": {
"dotenv": "^6.2.0",
"react": "^16.8.4",
"react-dom": "^16.8.4",
"react-router": "^4.3.1",
"react-router-dom": "^4.3.1",
"react-scripts": "2.1.8",
"typescript": "^3.3.3333",
"web-push": "^3.3.3"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"server": "node-env-run server --exec nodemon | pino-colada",
"dev": "run-p server start"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"description": "PWA",
"main": "index.js",
"devDependencies": {
"body-parser": "^1.18.3",
"express": "^4.16.4",
"express-pino-logger": "^4.0.0",
"node-env-run": "^3.0.2",
"nodemon": "^1.18.10",
"npm-run-all": "^4.1.5",
"pino-colada": "^1.4.4"
},
"keywords": [],
"author": "",
"license": "ISC",
"proxy": "http://localhost:5001/"
}