typescript - Kuinka muuttaa tsconfigin compilerOptions.paths dynaamisesti?


Käyttämällä Webpack 3.x, Typescript 2.x, Awesome Typescript loader 2.x

Minun täytyy dynaamisesti peilata laskettu arvo webpackin resolve.alias-ominaisuudessa TypeScriptin compilerOptions.paths-ominaisuuteen käännösaikana.

Alias-nimet voivat olla erilaisia eri buildien välillä, mikä toimii hyvin webpackin kanssa, mutta epäonnistuu, kun kyse on näiden alias-nimien ratkaisemisesta tyyppitarkistuksen aikana.

Vastaus #1

Kaikille muille, jotka kamppailevat webpackin ja TypeScriptin aliasoinnin kanssa, onnistuin ratkaisemaan tämän yksinkertaisesti kirjoittamalla aliasini tsconfigiin gulp-tehtävän avulla.

  let jsonAliases = myGetterFunctionForAliases(),
    path = 'tsconfig.json',
    tsconfig = require(`tsconfig.json`);

  for(let prop in jsonAliases) {
    jsonAliases[prop] = [`${jsonAliases[prop]}`]
  }

  tsconfig.compilerOptions.paths = jsonAliases;

  customNodeStuff.writeJSONFile(path, tsconfig);