0

Je travaille sur un moteur de jeu html5 et - en parallèle - je travaille sur un jeu utilisant ce moteur.Faire une définition goto fonctionne avec deux projets croisés es6

Les deux sont écrits en utilisant ES6 et transpilés en utilisant webpack. Le moteur et l'application sont dans leur propre répertoire, avec leur propre package.json.

J'utilise webpack pour générer le moteur, puis j'utilise npm link pour ajouter un lien dans les modules nodaux globaux pointant vers le moteur, puis j'utilise npm link engine dans le répertoire de l'application pour pointer vers le répertoire de développement du moteur. Cela fonctionne très bien, et à l'aide de sources, je peux avoir des débogueurs et naviguer dans le moteur et l'application.

En VSCode, j'ai un espace de travail (j'utilise les builds d'initiés) avec deux répertoires: l'un est le moteur, l'autre est l'application. Lorsque je travaille sur le moteur, je peux cmd + cliquer sur n'importe quelle méthode et cela ouvrira le bon fichier dans le moteur. La même chose vaut pour l'application.

Mais quand je travaille sur un fichier dans le répertoire de l'application qui utilise le moteur, cmd + en cliquant sur une méthode du moteur ne fonctionnera pas. Y a-t-il un moyen de le faire fonctionner correctement? Je suppose que c'est parce que la propriété principale dans le package.js du moteur se réfère à la main construite (transpiled), et non au point d'entrée principal (webpack) ES6. Que pourrais-je faire pour le faire fonctionner comme prévu?

Répondre

0

En fait, cela peut être corrigé à l'aide du fichier de configuration jsconfig.json utilisé par le compilateur Typescript de VSCode.

Il peut accepter les alias qui seront ensuite utilisés par le compilateur au lieu d'utiliser l'entrée principale du fichier package.json.

Par exemple, j'utilisé ceci:

{ 
    "compilerOptions": { 
     "target": "es2016", 
     "module": "es6", 
     "baseUrl": ".", 
     "paths": { 
      "athenajs": [ 
       "./node_modules/athenajs/js/athena-module" 
      ] 
     } 
    } 
} 

Voir cette cookbook pour plus d'informations sur jsconfig.json.