J'ai un projet node-webkit avec un main.js
. Tout en haut, j'ai
var updater = require("./updater.js");
et j'ai un fichier nommé updater.js
dans le même répertoire que main.js
. Lorsque j'exécute l'application, j'obtiens l'erreur
Uncaught Error: Cannot find module './updater.js'
updater.js
contient une ligne:
module.exports = "Hello!";
Je n'ai aucune idée pourquoi il ne peut pas exiger le fichier. J'ai vu un autre projet faire la même chose. Je peux require
modules réguliers npm
très bien à partir du même main.js
.
En effet, lorsque vous exécutez votre application (main.js) à l'aide de node-webkit, le répertoire racine (de travail) se trouve où se trouve le fichier index.html, donc './' fait référence à ce répertoire et non à celui dans lequel se trouve le fichier que vous la demande du module est en.
Vous pouvez facilement résoudre ce problème en utilisant méthode de résolution dans le module de noeud 'path' et en fournir la sortie à la méthode require dans votre fichier de travail
Procédez simplement comme suit:
var path = require('path');
var updater = require( path.resolve( __dirname, "./updater.js" ) );
EDIT: des informations sur l'objet de nœud global '__dirname' (et d'autres) peuvent être trouvées ici .