RequireJS和遗留应用程序(RequireJS and legacy application)

2019-07-30 13:59发布

我有一个遗留应用程序,我已经重构了应用到单独backbone.marionette应用程序的一部分。 我没有时间或预算来重构整个事情,我想我的代码更容易管理,这使我想到requirejs的。

大多数文件都微细化以及被改写的一起。

我可以使用requirejs这种类型的混合解决方案的,我可以在单独的骨干模块工作,并仍可以访问现有的JavaScript?

Answer 1:

正如有人谁只是一个传统的使用Require.js最近开始,骨干网,使用的代码库,我觉得你的痛苦:-)我用的方法,我将在这里列出的组合。

比方说,你有fileA.js和fileB.js,你要转换fileB.js使用要求,在不改变fileA.js:

  • 滥用全局空间

    要求不强迫你通过它导入每个变量; 即使在要求,指明分数的文件,你仍然可以访问全局变量,你会与非要求,指明分数代码的方式。 这意味着,如果的fileA创建所有其在全球/窗口命名变量(如果你没有使用要求之前,这是非常有可能)的,FILEB可以访问它们的fileA是否使用要求。

    这清盘是我的大部分我的旧文件的解决方案; 我只是把它们作为IS,并把它们下面所有的新要求,指明分数东西。 这样,每个全局他们创造的准备和等待,当需要,指明分数文件需要他们。

    现在,这是伟大的,如果FILEB要看的fileA,但如果它的愿望相反? 好了,要求也并不妨碍你作出新的全局变量,这意味着FILEB可以分享任何东西要和的fileA,只要它愿意把它的全球空间。

  • 重复码

    不要生气; 我知道的编码实践是多么重要“干”是。 然而,仅仅几个文件是我清盘做的是使要求,指明分数重复。 这清盘是必要的,因为我使用的一个把手插件的要求做我的模板编译,所以如果我想任何文件中使用的手把我需要它是要求,指明分数。

    为了打击正常未干的问题,我添加了注释到旧的文件实际上是说“不添加任何东西到这个文件中,要求,指明分数的版本是‘真正的’版本”。 我的计划是慢慢地转换更多的网站来要求随着时间的推移,直到我终于可以消除原有的,过时的文件。 我们有一个小商店,所以它适用于我们,但在一个大公司,这可能飞不起来。

  • 重构

    我知道,你说你想避免这种情况,但有时有点重构可以给你很多爆炸为您的降压。 我个人几乎重构在所有的东西,但也有只是一对夫妇的地方是一个小的调整,大大简化事项。

    总的来说,我看到重构的东西你做后您切换到要求(以随时间慢慢把你非要求,指明分数码“在对折”)。

  • 垫片

    Chchrist是正确地说,垫片解决“中途要求”的问题。然而,我个人没有使用他们在所有的好办法,所以我真的不能说太多关于他们的,除了“在看他们,它们可能会有所帮助。”



文章来源: RequireJS and legacy application