如何将一个没有模块的js应用程序迁移到commonJs模块

How to migrate a js app that has no module to commonJs modules?

本文关键字:模块 js 应用程序 迁移 commonJs 一个      更新时间:2023-09-26

我正在开发一个大的、有价值的但很旧的js应用程序,虽然代码很干净,但那里没有模块的概念。该应用程序被拆分为许多文件,所有文件都以"有效的顺序"导入到index.html中。

出于许多原因,我想将代码库转移到模块中但是看起来真的有很多工作要做。由于js的动态特性,在运行时会检测到未解析的依赖关系。因此,"大量工作"+"不可靠"使其成为一项危险的努力。

最好的方法是什么?有什么工具可以帮助我完成这项任务吗(我正在考虑AST+依赖性分析器)?

Webpack有一些工具可以解决这些情况。检查导出加载程序——它从尚未导出值的模块(文件)中导出(您选择的)值。这让你或多或少地把它当作一个模块来对待。还要检查imports-loader(将另一个文件导入到一个文件中,这样您就可以确保在构建时存在依赖项),以及文档的同一页面上的其他资源。