我目前正在将应用程序从Angular 1.x迁移到Angular 2.0,我有两个与模块系统和js文件加载方式相关的问题:
在Angular 1.x版本中,我有一个咕噜咕噜的工作,正在观察我的文件,并将所有js文件组合在一个巨大的文件中。最后,我刚刚在我的索引页面中引用它,一切正常。使用Angular 2.0,我使用TypeScript和模块方法,因此加载js文件由模块系统处理。因此,我没有一个大文件,相反,我可以在我的Google Chrome开发者信息中心的网络标签中看到很多调用所有JS文件。我试图合并文件并包含结果,但我有一些与匿名模块注册有关的错误。所以我想知道是否有办法将所有JS文件合二为一。
在Angular 1.x版本中,我有一个名为“language”的特定文件夹,其中包含“fr”和“en”文件夹。我的笨拙工作是创建两个不同的文件:“product.fr.min.js”和“product.en.min.js”。它们由所有JS文件+“language / fr / .js”组成,用于“.fr.min.js”文件和所有JS文件+“language / en / .js” “.en.min.js”的文件。因为,使用Angular 2.0& TypeScript,我真的无法控制加载什么文件,我真的不知道如何迁移那部分,我想避免引用“fr”和“en”文件(因为我可以添加其他语言,我不希望用户只需加载36种语言即可。)
由于
答案 0 :(得分:2)
嗯,除了轶事,我不能提供更多的轶事,但值得的是:
我强烈推荐Webpack,特别是因为它专注于你想要实现的目标:捆绑。我最近开始了一个ng1 / ng2 / Typescript项目。首先我使用Gulp,然后使用JSPM,然后,我对结果不满意,我转向Webpack,并在5分钟内得到了一些我很满意的东西。我建议看this starter project,因为它可能是我见过的最好的。
在不知道具体细节的情况下,我想让你开始的最明显的建议是将所有语言字符串放入JSON中,然后加入"延迟加载"一旦你决定使用该语言,就可以使用JSON。