Angular 2的内部化(ng-xi18n工具),无需代码编译



我使用ng-xi18n工具创建i18n文件。当我执行"./node_modules/.bin/ng-xi18n"消息时。完成XLF文件的创建。问题是所有的代码都是编译的。js, js。地图,元数据。json文件被创建,我不需要它们。如何创建消息。XLF不带js, js。映射和元数据。json文件?

这是我的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 }
}

这实际上是工具中的一个开放问题:

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文件夹中有所有与angular相关的代码,因此我的目标是从该文件夹开始删除。
  • 我不依赖于该文件夹中的任何.js文件,因此我可以安全地删除它们。考虑到这一点,如果你有一些javascript文件,你想保留和调整相应的globbing模式。
  • 你需要将rimraf添加为依赖项(或者最好是开发依赖项)才能使其工作。

希望这能帮到你,直到bug被修复。

干杯!

相关内容

  • 没有找到相关文章

最新更新