1

我使用ng-xi18n工具创建 i18n 文件。当我执行"./node_modules/.bin/ng-xi18n"messages.xlf 文件时创建。问题是所有代码都被编译了。js、js.map、metadata.json 文件已创建,我不需要它们。在没有 js、js.map 和 metadta.json 文件的情况下创建messages.xlf?

这是我的 tsconfig.json:

{
  "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 }
}
4

1 回答 1

1

这实际上是该工具中的一个未解决问题:

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

作为一种解决方法,我实现了一个 npm 脚本来运行ng-xi18n然后删除生成的文件。

在您package.json添加以下scripts部分:

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

然后您可以发出npm run i18n执行提取和清理的命令。

笔记:

  • 在我的设置中,我将所有与角度相关的代码都放在ClientApp项目文件夹根目录的文件夹中,因此我的目标是从该文件夹开始删除。
  • 我不依赖该文件夹中的任何 .js 文件,因此我可以安全地删除所有这些文件。如果您有一些要保留的 javascript 文件并相应地调整通配模式,请考虑到这一点。
  • 您需要将rimraf添加为依赖项(或最好是开发依赖项)才能使其正常工作。

希望在错误得到修复之前有所帮助。

干杯!

于 2017-01-18T14:26:17.767 回答