Relacionado com # 79 e # 148
Apenas um PSA rápido para o caso de ajudar as pessoas. Eu estava usando este plugin porque era conveniente, mas a construção levaria 2 gb de memória e muito tempo. Limitei o problema a este plugin. Agora estou simplesmente usando tsc
e, em seguida, conectando a entrada js para fazer rollup e meu tempo de compilação caiu cerca de 5x e a memória caiu cerca de 100x.
Não estou criticando o trabalho árduo que realmente precisa deste plugin porque os custos de desempenho são altos.
Só meus 2 centavos ...
Sim, a conveniência tem um preço. :) Se alguém tiver uma ideia de como acelerar isso, faça um PR :)
@mikob
Agora, estou simplesmente usando o tsc e, em seguida, conectando a entrada js para fazer rollup e meu tempo de compilação caiu cerca de 5x e a memória caiu cerca de 100x.
Obrigado pelo ponto de dados, como alguém ainda está tentando decidir se desejo iniciar minha próxima biblioteca TS com Rollup, você pode nos dar um resumo de como você fez isso?
@mikob
Agora, estou simplesmente usando o tsc e, em seguida, conectando a entrada js para fazer rollup e meu tempo de compilação caiu cerca de 5x e a memória caiu cerca de 100x.
Também estou interessado na sua solução. O ponto de entrada geralmente importa vários outros módulos, então usamos rollup
para agrupá-los todos em um único arquivo. tsc
suporta apenas arquivo de saída único para formato de módulo "AMD" e "Sistema".
@adrianmcli @sntran Estou usando a API do compilador de script e a API de rollup em um script. Basicamente, assim:
watchTs();
const watcher = rollup.watch(rollupConfig);
watchTs
faz um monte de coisas padronizadas (eles não tornam sua API fácil). Você pode começar olhando para ts.createWatchCompilerHost
Comentários muito úteis
@mikob
Obrigado pelo ponto de dados, como alguém ainda está tentando decidir se desejo iniciar minha próxima biblioteca TS com Rollup, você pode nos dar um resumo de como você fez isso?