Sådan indstilles arbejdskatalog for Node.js på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har lige installeret node.js til Windows, og det var virkelig en leg at få det til at køre. Jeg vil gerne bruge det som en del af min byggeproces for at kombinere flere filer sammen som sådan:


// settings
var FILE\_ENCODING = 'utf-8',
    EOL = '
',
    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);


Dette virker virkelig som en charme. Det virker dog kun, hvis jeg placerer alle mine scripts i nodejs-mappen, som er C: \ Program Files (x86) \ nodejs og starter CMD-processen med administratorrettigheder.


Men jeg skal have mine projektfiler i en anden mappe (sig D: \ git \ projectx \) og vil gerne kunne køre: node.exe D: \ git \ projectx \ combine.js. Uheldigvis virker det ikke sådan, fordi node.exe vil kigge efter filerne i sin egen mappe, som er C: \ Program Files (x86) \ nodejs. Der skal være væk for at starte nodejs processen og fortælle det at bruge en anden mappe som sin arbejdsmappe, har jeg det forkert?


UPDATE


Som nogen påpegede IRC. Løsningen på mit problem var ret simpelt. Bare cd til D:gitprojectx og brug derefter node.exe combine.js. Dette gør det således, at den nuværende mappe inde i dit script peger på D:gitprojectx


Imidlertid accepterer jeg Lukas svar, da det også forekommer sandt ;-)

Bedste reference


Du kan indstille den aktuelle arbejdsmappe ved hjælp af process.chdir, ved hjælp af Unix-stil stienavne: [12]


process.chdir('/temp/foo');


Jeg er ikke sikker på, hvordan du angiver drevpræfikset (D:).

Andre referencer 1


Du kan altid bruge \_\_dirname til at repræsentere biblioteket for det script, du er i ...


process.chdir(\_\_dirname);

Andre referencer 2


process.chdir('D:\git\projectx')

Andre referencer 3


Faktisk er det s


process.chdir('D:\git\projectx')