Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Affichage des résultats 1 à 1 sur 1
  1. #1
    Hello, j'aurais besoin d'un expert en JS, plus précisément en NodeJS, j'explique mon problème.

    Avant le problème

    Actuellement, je (dois) travailler sur 2 technologies bien distinct :

    • Le framework VueJS
    • Un serveur NodeJS avec des outils tel que express, typescript, twig, etc

    Sur les 2 cas, j'arrive sans aucun soucis à le mettre en place, tout est fonctionnel.

    Le problème ? C'est surtout pour le serveur NodeJS qui me demande un temps fou pour la création, temps que je pourrai utiliser pour faire autre chose de plus important et surtout, de moins rébarbartif... Je met pratiquement 30 min a mettre tout en place (configuration du serveur, des divers outils annexes tel que eslint prettier/editorconfig, de la configuration de typescript, etc) et c'est beaucoup trop contraignant question temps....

    Solutions possible

    Le plus simple étant de faire un serveur type et de le conserver via une archive ou d'un reposity (git par exemple), mais cela implique que chaque serveur que je fait est identique. C'est la solution de facilité.

    Autre solution: Créer un script NodeJS intéractif qui me permettrait de choisir la configuration voulu du serveur (production ou developpement).
    C'est finalement, cette dernière solution que j'aimerais entreprendre.

    How I met the problem

    Pour expliquer le soucis je vais prendre un exemple :
    Par défaut, la structure du fichier resemble à cela :

    • Example/
      • package.json
      • bin/
        • main.js

    Voici les contenu des fichiers :

    package.json

    Code:
     {
       "name": "example",
       "version": "1.0.0",
       "main": "./bin/main.js",
       "bin": "./bin/main.js",
       "license": "MIT"
     }
     ​
    main.js

    Code:
     console.log("Hello World");
    Je lance l'application via le terminal par la commande
    Code:
     node ./bin/main.js
    Il m'affiche bien "Hello World".

    L'empaquetage, si on peut dire...

    A présent je tape la commande dans le dossier du projet :
    Code:
     npm link
    Il me créer sans problème les fichiers dans les package global de npm (enfin via lien) mais le problème , il me génère ce fichier :
    Code:
     #!/usr/bin/env pwsh
     $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
     ​
     $exe=""
     if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
       # Fix case when both the Windows and Linux builds of Node
       # are installed in the same directory
       $exe=".exe"
     }
     & "$basedir/node_modules/example/bin/main.js"   $args
     exit $LASTEXITCODE
    Et quand je lance le script il m'ouvre vscode avec le fichier script.... Pas vraiment ce que je cherche.
    La plupart des docs que je trouve est pour linux et mettre "!#/usr/bin/env node" ne marche pas sous windows.

    J'ai regarder le script d'un autre paquet et j'ai cela:
    Code:
     #!/usr/bin/env pwsh
     $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
     ​
     $exe=""
     if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
       # Fix case when both the Windows and Linux builds of Node
       # are installed in the same directory
       $exe=".exe"
     }
     $ret=0
     if (Test-Path "$basedir/node$exe") {
       & "$basedir/node$exe"  "$basedir/node_modules/create-react-app/index.js" $args
       $ret=$LASTEXITCODE
     } else {
       & "node$exe"  "$basedir/node_modules/create-react-app/index.js" $args
       $ret=$LASTEXITCODE
     }
     exit $ret
    Ce qui ressemble pas du tout a ce qui est généré...

    quelqu'un aurait une idée comment généré mon paquet sous windows et qu'il marche directement avec node ?

    Merci d'avance.
    Dernière modification par Whiskey ; 08/10/2020 à 17h31.
    Besoin de vous formez ? Essayer ceci : UDemy

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •