Ich verwende das gulp
und Paket auf node.js, um einige Nur-Text-Dateien zu überführen. Unter Unix scheint alles gut zu funktionieren. Einige Mitarbeiter haben jedoch Probleme bei der Ausführung unter Windows. Sie werden immer folgende Fehlermeldung nur dann, wenn unter Windows ausgeführt wird:Node.js - Eigenschaft 'toString' von Null kann nicht gelesen werden, wenn Paket unter Windows ausgeführt wird
[13:02:01] TypeError: Cannot read property 'toString' of null at Object.transcludeStringSync (D:\project\node_modules\hercule\lib\hercule.js:136:36)
habe ich versucht, die oben mit [email protected]
sowie [email protected]
, und beide Pakete geben den obigen Fehler. Da dies jedoch nur unter Windows und über viele Versionen des Pakets auftritt, vermute ich, dass das Problem mit der Node.js-Installation oder dem Pfad etwas zu tun hat.
Der Code, der die Paket verwendet:
var fs = require('fs');
var path = require('path');
var gulp = require('gulp');
var drakov = require('drakov');
var hercule = require('hercule');
gulp.task('mock', ['i18n','build_minify_no_tests'], function() {
var mockSpecificationTemplate= fs.readFileSync('test/mock/mock-template.apib','utf8');
var transcludedMockSpecification = hercule.transcludeStringSync(mockSpecificationTemplate, {
relativePath: path.resolve('../../../')
});
fs.writeFileSync('test/mock/mock.apib', transcludedMockSpecification, 'utf-8');
// Running mock server
var drakovArgv = {
sourceFiles: 'test/mock/mock.apib',
serverPort: 9000,
staticPaths: [
'../../'
],
discover: true,
watch: true
};
drakov.run(drakovArgv);
});
node
und npm
Versionsinformationen:
$ node -v
v6.3.0
$ npm -v
3.10.3
Lassen Sie Ihre Mitarbeiter, Linux zu verwenden? – mash
Das Problem ist wahrscheinlich, dass 'transcludeStringSync' versuchen wird, einen anderen Knotenprozess unter Verwendung von' child_process' zu erzeugen, der wahrscheinlich aufgrund des Weges oder der Argumente, die es wissen, unter Windows scheitern wird. Wie auch immer, es ist eine schlechte Übung, stattdessen transcludeString zu verwenden und es sollte behoben werden. – mash
Es wird versucht, den Dateiinhalt in String() zu konvertieren. aber es wird NULL, daher ist das Problem, dass der Dateipfad nichts zurückgibt. Können Sie test/mock/mock-template.apib Inhalt anzeigen? Ich glaube, etwas stimmt nicht mit den Pfaden dort (von Linux zu Windows) der relative Pfad + diese Pfade sind nicht richtig konfiguriert. – Bamieh