У меня странная проблема с застреванием git / node для использования старой версии. js -файла. Время от времени после сохранения изменений (пока только в том случае, если в коде есть ошибки, часто после конфликтов слияния), файл каким-то образом застревает в старой версии при сборке приложения. Все выглядит нормально, VSCode меняет файл и показывает его отлично, но при попытке собрать приложение процесс сборки (как разработки, так и производства) использует старую версию файла с ошибками.
Это то же самое происходит как на Win10, так и на MacO.
Я нашел 2 способа исправить это (оба только обходные пути)
- Переименуйте файл, вызывающий проблему
- старое имя файла нельзя использовать даже после того, как оно было удалено и повторно активировано
- Клонировать ветку с новым именем Повторно клонировать репозиторий
Вот примеры файлов:
InfoComponents. js (в этом содержалась ошибка)
import React from 'react';
import Typography from '@material-ui/core/Typography';
import Battery from '@navigil/shared/src/components/SVGs/Battery';
import Box from '@navigil/shared/src/components/Box/Box';
import InfoBadge from './InfoBadge';
const batteryStatus = [80, 50, 15, 5];
const InfoComponents = ({ badges }) => (
<>
<Typography variant='h4'>Status / Warnings / Alarms</Typography>
<Box>
{badges.map((badge, index) => {
const { badgeProps, imageProps, imageComponent: Image } = badge;
return (
<InfoBadge key={index} {...badgeProps}>
<Image {...imageProps} />
</InfoBadge>
);
})}
</Box>
</>
);
export default InfoComponents;
Dashboard. js (это импортирует InfoComponents)
import React from 'react';
import Typography from '@material-ui/core/Typography';
import styled from 'styled-components';
import Battery from '@navigil/shared/src/components/SVGs/Battery';
import Box from '@navigil/shared/src/components/Box/Box';
import Button from '@navigil/shared/src/styledTheme/Components/Button';
import InfoComponents from './InfoComponents';
import { badges } from './testVariables';
const StyledButton = styled(Button)`
max-width: 100px;
`;
const NewWatchDashboard = () => (
<>
<InfoComponents badges={badges} />
</>
);
export default NewWatchDashboard;
А вот ошибка синтаксического анализа, которую я получаю при сбое сборки:
./src/InfoComponents/Dashboard.js
Line 7:28: Parse errors in imported module './InfoComponents': Line 14: Unexpected token
12 | <Box>
13 | {badges.map((badge, index) => ({
> 14 | <InfoBadge key={index} {...badgeProps}>
| ^
15 | <Image {...imageProps} />
16 | </InfoBadge>;
17 | }))} (14:9) import/namespace
Line 7:28: Parse errors in imported module './InfoComponents': Line 14: Unexpected token
12 | <Box>
13 | {badges.map((badge, index) => ({
> 14 | <InfoBadge key={index} {...badgeProps}>
| ^
15 | <Image {...imageProps} />
16 | </InfoBadge>;
17 | }))} (14:9) import/default
Как видно из приведенного выше, код в инфо-компонентах. js не соответствует коду в сообщении об ошибке.
Создание песочницы для этого добро трудно, потому что все работает просто отлично, если я создаю все это с нуля. Так что определенно выглядит проблема с Git. Есть идеи, что может вызвать это и как предотвратить это? Любые идеи, как это легко исправить, когда это произойдет?
-Jukka