Bonjour,

En pleine étude des technos react et Node.js, j'écris actuellement une petit chat pour appréhender les concepts.

J'utilise socket.io dans mon composant principal App.

import io from 'socket.io-client'

puis dans componentDidMount:

this.socket = io.connect('http://192.168.3.145:3001')

Nous pouvons voir que je me connecte avec une URI en dur. Comment puis-je faire pour pouvoir changer cette propriété manuellement depuis un fichier de configuration ou autre?Je précise que mes futur projet, seront ciblés pour l'industrie, et que mon application devra être déployée sur plusieurs site avec chacun une configuration particulière.

Cordialement.

4 réponses


Bonjour,

Il est possible d'avoir un fichier de configuration:

// src/config.js
export default {
  socketUrl: 'https://example.com'
}

Puis il suffit de l'importer dans les composants:

// src/components/App.js
// Les différents imports
import { socketUrl } from '../config.js'

// ...
this.socket = io.connect(socketUrl)
// ...

On peut aussi utiliser un fichier JSON.

J'éspère avoir aider.

Merci pour votre réponse.
le problème avec cette méthode c'est que après le build de la solution, je n'ai plus accès à ce fichier de configuration.
cordialement.

Bonjour,
Pouvez-vous donnez un peu plus de détail sur votre build.

Un petit tour du côté de webpack qui permet de créer des types de build 'dev' | 'prod' | 'etc'. Selon le type ça remplecerais l'url de la socket par une valeur qui correspond au type du build. Je pense que c'est ce qui est recherché ?

Merci beaucoup, je veis regarder la doc de webpack.