I am running on a huge project with thousands of .js
files that are written in es5
, and for many reasons and benefits of TS
, we've decided to start migrating to TS
, after a couple of days and many pieces of research, I am going to elaborate a couple of points:
To start migrating from es5
to ts
we can start either by two ways:
First way:
1- Installing ts
, creating tsconfig
with allowJS
set to true then start changing the extension of files to .ts
and everything will work by default
2- As we want to migrate gradually we don't want at once to replace the global scripts to native modules, in other words, we don't want immediately to type import
and export
, but instead we want to keep the old way global scripts
and use /// <reference path="">
to load dependencies
3- after previous step we can gradually start turning the files into native modules esm
Second way:
1- As I've read about UMD it will work on both borwser(client) and server, which means support all type of modules AMD, CommonJS, SystemJS and Native ES modules
2- after re-writing the scripts in UMD
fashion, we can gradually start moving our scripts to ESM
last but not least, and regarding the intelligence we'll start writing .d.ts
files accordingly or we can rely on ts-loader
to generate the files
lastly, we either go with ts-loader
or babel
but we are not sure if there are couple of limitations for each of which
Any idea is really appreciated on what is the best way to start migrating
I appreciate all the answers but for my case it is so complicated because ts modules will affect the scope
, what I found useful is using what so-called shimmer modules
in webpack
which allows a feature called imports-loader
which I can use to manipulate the scope of js, hence nothing is broken, then I can move file by file to start migrating