da2k / curso-reactjs-ninja

917 stars 322 forks source link

Versão standardJS #600

Closed fernandomk6 closed 1 year ago

fernandomk6 commented 1 year ago

Professor, é uma solicitação que o senhor coloque no arquivo version of dependencies que o standard, deve ter no maximo a versão 16. A atual é a 17 e usa import/export que não são suportados pelo node na versão 10 que é a recomendada no próprio arquivo version of dependencies. Ocorreu o erro comigo, mas esse consegui resolver sozinho instalando o standard com a versão 16.

@fdaciuk

fdaciuk commented 1 year ago

Oi @fernandomk6! Bem colocado! Eu fiz alguns testes com a versão mais recente do Node, e parece que tudo funciona corretamente com essa versão (v18, atualmente).

Se você puder fazer um teste com essa versão, acredito que não vai quebrar nada. Estávamos com alguns problemas na versão 12 do Node, por isso eu pedi pra usar a 10 na época, mas com a v18 eu acredito que os problemas da v12 foram resolvidos.

Testa aí e me diz se você consegue usar a v17 do standard, por favor =)

fernandomk6 commented 1 year ago

Testei aqui com a versão 19 do node (current), e a versão 17 do standard e standard-loader versão 7.

Ocorreu o mesmo erro:

ERROR in require() of ES Module

C:\Users\Fernando\Desktop\github\curso-react.js-ninja-react-completo\modulo-webpack\projetos\react-webpack\node_modules\standard\index.js 

from 

C:\Users\Fernando\Desktop\github\curso-react.js-ninja-react-completo\modulo-webpack\projetos\react-webpack\node_modules\standard-loader\index.js 

not supported.

Instead change the require of 

C:\Users\Fernando\Desktop\github\curso-react.js-ninja-react-completo\modulo-webpack\projetos\react-webpack\node_modules\standard\index.js 

in 

C:\Users\Fernando\Desktop\github\curso-react.js-ninja-react-completo\modulo-webpack\projetos\react-webpack\node_modules\standard-loader\index.js 

to a dynamic import() which is available in all CommonJS modules.

@ multi main

O node ainda não entende sintaxe export/export?

fdaciuk commented 1 year ago

Oi @fernandomk6! Para o Node, é bom usar sempre a versão LTS (no caso, a v18). Versões ímpar são instáveis =)

O standard-loader é uma dependência do webpack, por isso ele precisa estar na mesma versão apresentada na aula (no caso, na v4). Já o standard, em teoria, pode ser a versão mais recente sem problemas.

Tente com essas versões pra ver se funciona:

fernandomk6 commented 1 year ago

Testei novamente, o mesmo erro ocorreu.


├── standard-loader@4.0.0
├── standard@17.0.0

Node: v18.12.1
fernandomk6 commented 1 year ago

Na node modules o diretorio do standard usa uma sintaxe de import e export. Na versão 16, ele usa module.exports.

// node_modules/standard/index.js v17

/*! standard. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
import { StandardEngine } from 'standard-engine'
import options from './options.js'

export default new StandardEngine(options) // <-
fdaciuk commented 1 year ago

Perfeito, vou ajustar então pra usar a v16 do standard por enquanto :D

Com a v16 do standard e a v18 do node rola tudo certinho?

fernandomk6 commented 1 year ago

Isso professor, roda corretamente.

Apenas aparece um warning criticando o uso do React.createClass

WARNING in ./src/app.js
<text>:5:13: React.createClass is deprecated since React 15.5.0, use the npm module create-react-class instead
fdaciuk commented 1 year ago

Legal! Pode ignorar esse warning por enquanto. O uso do React.createClass foi só pra facilitar a explicação do React no início do curso. Existem formas mais modernas de criar componentes, que você vai ver nas próximas aulas =)

Já atualizei o arquivo de versões de dependências. Muito obrigado pela ajuda @fernandomk6 ❤️