2016-11-07 2 views
1

Ich erstelle i18n Dateien mit ng-xi18n Werkzeug. Wenn ich "./node_modules/.bin/ng-xi18n" ausführen, wird die Datei messages.xlf erstellt. Das Problem ist, dass der gesamte Code kompiliert ist. js, js.map, metadata.json Dateien werden erstellt, ich brauche sie nicht. Hoe, um messages.xlf ohne js, js.map und metadta.json Dateien zu erstellen?Angular 2 Internalisierung (ng-xi18n Werkzeug) ohne Code-Kompilierung

Hier mein tsconfig.json ist:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "allowSyntheticDefaultImports": true, 
    "sourceMap": true, 
    "noEmitHelpers": true, 
    "strictNullChecks": false, 
    "baseUrl": "./src", 
    "paths": { 
    }, 
    "lib": [ 
     "dom", 
     "es6" 
    ], 
    "types": [ 
     "hammerjs", 
     "jasmine", 
     "node", 
     "protractor", 
     "selenium-webdriver", 
     "source-map", 
     "uglify-js", 
     "webpack" 
    ] 
    }, 
    "exclude": [ 
    "node_modules", 
    "dist" 
    ], 
    "awesomeTypescriptLoaderOptions": { 
    "forkChecker": true, 
    "useWebpackText": true 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "atom": { "rewriteTsconfig": false } 
} 

Antwort

1

Dies ist eigentlich eine offene Frage im Werkzeug:

https://github.com/angular/angular/issues/13567

Als Abhilfe können habe ich ein npm Skript implementiert zu laufen ng-xi18n und entfernen Sie dann die generierten Dateien.

In Ihrem package.json fügen Sie den folgenden scripts Abschnitt:

"scripts": { 
    "i18n": "ng-xi18n && npm run clean:i18n", 
    "clean:i18n": "rimraf ClientApp/**/*.js ClientApp/**/*.js.map ClientApp/**/*.metadata.json" 
} 

Dann können Sie npm run i18n erteilen die Extraktion und Reinigung durchzuführen.

Hinweise:

  • In meinem Setup, habe ich alle Winkel zugehörigen Code in einem ClientApp Ordner im Stammverzeichnis des Projektordners, daher bin Targeting ich die Löschungen aus dem Ordner starten.
  • Ich bin nicht auf irgendwelche .js Dateien in diesem Ordner angewiesen, daher kann ich alle sicher löschen. Berücksichtigen Sie dies, wenn Sie einige JavaScript-Dateien haben, die Sie beibehalten möchten, und passen Sie das Globbing-Muster entsprechend an.
  • Sie müssen rimraf als Abhängigkeit (oder vorzugsweise als Dev-Abhängigkeit) hinzufügen, damit es funktioniert.

Hoffe, dass hilft, bis der Fehler behoben wird.

Prost!

+0

Es ist ein Compiler [Problem] (https://github.com/angular/angular/pull/14115). Es wird in Angular 4 behoben werden – Luka