reactjs - React-projektet misslyckas med att använda node-moduler i en git-submodul


Jag har ett Javascript (typescript) projekt som jag använder som ett git-submodul i ett react-projekt (även typescript).

Allt detta fungerar bra... tills jag använder något Node-modul i git-submodulen. Jag försökte använda till exempel Node-modulerna "moment" och "faker", men jag är nästan säker på att det inte har att göra med dessa specifika Node-moduler.

Importerar till exempel "moment" i undermodulen:

import moment from 'moment';

att använda det:

moment().format('DD/MM/YYYY');

och att köra huvudreaktprojektet leder till detta fel:

Failed to compile.

./src/project_core/node_modules/moment/moment.js
  Line 5:37:  'define' is not defined  no-undef
  Line 5:50:  'define' is not defined  no-undef

Att ta bort moment().format('DD/MM/YYYY'); löser det.

Om jag bara kör några tester direkt i undermodulen och använder till exempel "moment", fungerar det alltid. Jag kan använda node-modulerna. Det verkar som något går fel när huvudprojektet använder node-modulerna i git-undermodulen.

Så här ser mitt React-projekt ut. Som du kan se är undermodulen project_core tillagd i src-mappen i huvudprojektet.

├── build
│   ├── assets
│   └── static
│       ├── css
│       └── js
├── node_modules
├── public
│   └── assets
└── src
    ├── project_core
    │   ├── node_modules
    │   ├── src
    │   └── tests
    ├── ui
    ├── api
    └── utils

Jag vet... Jag läser överallt att använda git-submoduler inte rekommenderas. Jag vill dock bara experimentera med git-submoduler för att lära mig av det.

Svar #1

Det ser ut som att du har ett nodmodul inuti en nodmodul. Detta förvirrar förmodligen din bundlare och orsakar importfel. Försök att ta bort package.json och node_modules från din projektkärnas undermapp och se om importerna fungerar korrekt. Om du vill göra din kärnmapp till ett bibliotek, överväg att faktiskt ha det som ett npm-beroende istället för en submodul. Du kan fortfarande referera till ett git-commit hash i beroendet.