Je viens d'installer node.js pour Windows et c'était vraiment un jeu d'enfant de le faire fonctionner. Je voudrais l'utiliser dans le cadre de mon processus de construction pour combiner plusieurs fichiers, comme ceci:
// settings
var FILE_ENCODING = 'utf-8',
EOL = '\n',
DIST_FILE_PATH = 'dist/myAwesomeScript.js';
// setup
var _fs = require('fs');
function concat(fileList, distPath) {
var out = fileList.map(function(filePath){
return _fs.readFileSync(filePath, FILE_ENCODING);
});
_fs.writeFileSync(distPath, out.join(EOL), FILE_ENCODING);
console.log(' '+ distPath +' built.');
}
concat([
'foo/bar.js',
'foo/lorem.js',
'foo/maecennas.js'
], DIST_FILE_PATH);
Cela fonctionne vraiment comme un charme. Cependant, cela ne fonctionne que si je place tous mes scripts dans le répertoire nodejs qui est C:\Program Files (x86)\nodejs et que je lance le processus cmd avec des droits d'administrateur.
Mais je dois avoir mes fichiers de projet dans un autre répertoire (disons D:\git\projectx \) et j'aimerais pouvoir exécuter: node.exe D:\git\projectx\combine.js. Malheureusement, les choses ne fonctionnent pas de cette façon car node.exe recherchera les fichiers dans son propre répertoire qui est C:\Program Files (x86)\nodejs. Le processus nodejs doit pouvoir être démarré et lui dire d’utiliser un autre répertoire comme répertoire de travail. Je me trompe?
METTRE À JOUR
Comme quelqu'un l'a souligné sur IRC. La solution à mon problème était plutôt simple. Il suffit de cd
dans D:\git\projectx
et d'utiliser ensuite node.exe combine.js
. Cela fait en sorte que le répertoire en cours dans votre script pointe sur D:\git\projectx
Cependant, j'accepte la réponse de Luke car elle semble être aussi vraie ;-)
Vous pouvez définir le répertoire de travail actuel en utilisant process.chdir , en utilisant des chemins d'accès de type Unix:
process.chdir ('/ temp/foo');
Je ne sais pas comment spécifier le préfixe de lecteur (D:
).
Vous pouvez toujours utiliser __dirname
pour représenter le répertoire du script dans lequel vous vous trouvez ...
process.chdir(__dirname);
process.chdir('D:\\git\\projectx')
En fait c'est
process.chdir('D:\\\git\\projectx')