我需要像我一样运行服务器:
npm run start
但是我需要使用生产模式。这可能吗?
在余烬或角形中这是可能的。
create-react-app
怎么办?
我尝试过
npm run start --prod
但什么也没有。
最好的选择可能是进行正常的生产构建,然后在本地运行。
首先安装HTTP服务器:
npm install serve -g
然后:
npm run build
serve -s build
默认情况下,它将在端口 5000 上运行,因此您的本地 URL 是 http://localhost:5000
要在生产模式下提供应用程序,您需要按照以下步骤操作
创建生产版本
npm 运行构建
全局安装npmserve
npm i -g 服务
您现在可以使用静态服务器来提供它
服务-s构建
您可以在此处查看更多选项。
对于生产中的开发,您可以在 React 应用程序中启用热重载而无需弹出
只需 3 行代码,您就可以打开 HMR,但有一个很大的警告:React 状态和 DOM 状态在重新加载之间不会保留。这有点无赖。
您可以将这些行添加到index.js以打开标准Webpack HMR,该HMR不会在重新加载之间保留状态:
if (module.hot) {
module.hot.accept();
}
阅读更多相关信息在这里希望它有帮助谢谢!
如果您已从
create-react-app
创建了 React 应用程序:
"scripts": {
"dev": "react-scripts start",
"start": "concurrently \"npm run server\" \"npm run dev\"",
"build": "react-scripts build",
"test": "react-scripts test",
"server": "pouchdb-server --host 0.0.0.0 -p 10102 -m -d /opt/pouchdb/data/visibility/ -n true",
"eject": "react-scripts eject"
},
像
npm run start
那样启动服务器将始终以开发模式启动服务器。事实上,它会自动将 NODE_ENV
设置为 development
,您可以在代码中使用它来执行以下操作:
if (process.env.NODE_ENV === "development") {
await import('rxdb/plugins/dev-mode').then(
module => addRxPlugin(module.RxDBDevModePlugin)
);
}
当您使用以下命令在生产环境中使用
serve
部署应用程序时:
% npm install -g serve
% npm run build
% serve -s build
它会自动将
NODE_ENV
设置为 production
。
您还可以更新脚本以在
dev
和 prod
模式下启动服务器,如下所示:
"scripts": {
"dev": "react-scripts start",
"start:dev": "concurrently \"npm run server\" \"npm run dev\"",
"start": "concurrently \"npm run server\" \"serve -s build\"",
"build": "react-scripts build",
"test": "react-scripts test",
"server": "pouchdb-server --host 0.0.0.0 -p 10102 -m -d /opt/pouchdb/data/visibility/ -n true",
"eject": "react-scripts eject"
},
现在分别以
dev
和 prod
模式启动服务器:
% npm run start:dev
% npm run start
是的,您可以在服务器上运行
npm start
命令,但应该有您的 节点模块。如果 node-modules 不存在,那么您可以使用 npm install
命令获取它们。