Fala ai William, tudo bem? Fiz o teste com seu projeto e aqui não deu o problema mencionado, no caso:
ncaught ReferenceError: exports is not defined
at fetch.js:3
(anonymous) @ fetch.js:3
O que eu fiz foi apagar a pasta node_modules
do client
e server
, e no client
também apaguei o package-lock.json
.
Depois fiz a instalação das dependências novamente:
npm i
Tanto para client
quanto para server
.
Dai subi o servidor:
npm start
E buildei o app:
npm run build
O problema que deu aqui foi para a SystemJS achar os arquivos, isso porque no index.html
:
<script>
System.defaultJSExtensions = true; // hide the extension .js from your imports
System.import('js/app/boot.js').catch(function(err){
console.error(err);
});
</script>
Faltou colocar ./
no System.import
, ficando:
<script>
System.defaultJSExtensions = true; // hide the extension .js from your imports
System.import('./js/app/boot.js').catch(function(err){
console.error(err);
});
</script>
E nas importações dos arquivos:
import {currentInstance} from './controllers/NegociacaoController';
import {} from './polyfill/fetch';
let negociacaoController = currentInstance();
document.querySelector('.form').onsubmit = negociacaoController.adiciona.bind(negociacaoController);
document.querySelector('[type=button]').onclick = negociacaoController.apaga.bind(negociacaoController);
Precisa adicionar a extensão .js
, isso porque nas novas versões da SystemJS as configurações são um pouco diferente, o jeito mais fácil (ao meu ver) seria adicionar a extensão.
// /client/js/app-es6/boot.js
import {currentInstance} from './controllers/NegociacaoController.js';
import './polyfill/fetch.js';
let negociacaoController = currentInstance();
document.querySelector('.form').onsubmit = negociacaoController.adiciona.bind(negociacaoController);
document.querySelector('[type=button]').onclick = negociacaoController.apaga.bind(negociacaoController);
Obs: Em todos os import
você vai precisar adicionar o .js
.
Espero ter ajudado.