Настройка в react приложении профилей для разработки и продакшена

- для разработки включен hotreload
- на бакенде включен CORS
This commit is contained in:
Pavel Gnedov 2023-07-03 08:06:01 +07:00
parent 1f20dd2006
commit b9899bc032
8 changed files with 9 additions and 5 deletions

View file

@ -0,0 +1 @@
REACT_APP_BACKEND=http://localhost:3001/

1
frontend/.env.production Normal file
View file

@ -0,0 +1 @@
REACT_APP_BACKEND=/

View file

@ -61,7 +61,7 @@ export const PageStore = types.model({
});
export async function PageStoreLoadData(store: IPageStore): Promise<void> {
const url = `/simple-kanban-board/${store.type}/${store.name}/raw`;
const url = `${process.env.REACT_APP_BACKEND}simple-kanban-board/${store.type}/${store.name}/raw`;
const resp = await axios.get(url);
if (!(resp?.data)) return;

View file

@ -34,7 +34,7 @@ export const KanbanBoards = observer((props: Props) => {
const onTreeRefreshClick = (e: React.MouseEvent) => {
if (e.target !== e.currentTarget) return;
e.stopPropagation();
axios.get(`/simple-kanban-board/tree/${props.store.name}/refresh`);
axios.get(`${process.env.REACT_APP_BACKEND}simple-kanban-board/tree/${props.store.name}/refresh`);
}
treeRefreshMenuItem = <button onClick={onTreeRefreshClick}>Force tree refresh</button>;
}

View file

@ -86,7 +86,7 @@ export const PageStore = types.model({
});
export async function PageStoreLoadData(store: IPageStore): Promise<void> {
const url = `/simple-kanban-board/${store.type}/${store.name}/raw`;
const url = `${process.env.REACT_APP_BACKEND}simple-kanban-board/${store.type}/${store.name}/raw`;
const resp = await axios.get(url);
if (!(resp?.data)) return;
store.setData(resp.data);

View file

@ -43,7 +43,7 @@ export type Props = {
export const IssueDetailsDialog = observer((props: Props): JSX.Element => {
const onUpdateClick = (e: React.MouseEvent) => {
const url = `/redmine-event-emitter/append-issues`;
const url = `${process.env.REACT_APP_BACKEND}redmine-event-emitter/append-issues`;
axios.post(url, [props.store.issue.id]);
};
const onCloseClick = (e: React.MouseEvent) => {

View file

@ -14,7 +14,7 @@ export const onIssuesRefreshClick = (e: React.MouseEvent) => {
export const onGetIssuesQueueSizeClick = async (e: React.MouseEvent): Promise<void> => {
if (e.target !== e.currentTarget) return;
e.stopPropagation();
const resp = await axios.get(`/redmine-event-emitter/get-issues-queue-size`);
const resp = await axios.get(`${process.env.REACT_APP_BACKEND}redmine-event-emitter/get-issues-queue-size`);
console.debug(`resp -`, resp); // DEBUG
if (!resp || typeof resp.data !== 'number') return;
alert(`Issues queue size - ${resp.data}`);

View file

@ -12,6 +12,8 @@ async function bootstrap() {
logger: ['debug', 'error', 'warn', 'log', 'verbose'],
});
app.enableCors();
app.setBaseViewsDir(join(__dirname, '..', 'views'));
app.setViewEngine('hbs');