我应该将我的.js文件连接到AngularJS WebApp中的文件吗?

时间:2015-08-11 18:26:16

标签: angularjs

我正在构建WebApp,整个项目基于AngularJSPHP(作为后端),我在最后一部分,给它最后的接触,测试等。我怀疑是否建议将所有.js文件连成一个。我问这个是因为我使用了很多代码,我自己编写的代码,以及第三方库,例如表单掩码,对话框,角度材料等。

我有两个页面结构,一个dist文件夹用于最终缩小的.js文件,还有一个src文件夹,其中包含所有内容。{/ p>

src                                     dist
├── app                                 ├── js
│   ├── .app-ctrl.js                    │   ├── .app.min.js
│   ├── .app-dire.js                    │   ├── .angular.min.js
│   └── .app-fact.js                    │   └── .angular-animate.min.js
│   └── .app-main.js                    │   └── .angular-material.min.js
└── js                                  │   └── .[...etc...].min.js
│    ├── .angular.min.js                └── lib
│    ├── .angular-animate.min.js            ├── .ngDialog.min.js
│    └── .angular-material.min.js           ├── .ngMask.min.js
│    └── .[...etc...].min.js                └── .[...etc...].min.js
└── lib
    ├── .ngDialog.min.js
    ├── .ngMask.min.js
    └── .[...etc...].min.js

然后在我的html文件中,我正在加载每个文件,如下所示:

<!-- Main Scripts -->
<script src="dist/js/app.min.js"></script>
<script src="dist/js/angular.min.js"></script>
<script src="dist/js/angular-router.min.js"></script>
[..etc..]

<!-- Lib Scripts -->
<script src="dist/lib/ngMask.min.js"></script>
<script src="dist/lib/ngDialog.min.js"></script>
<script src="dist/lib/ngNotification.min.js"></script>
[...etc...]

我最大的疑问是关于所有这些文件的连续性。

建议这样做吗? 我应该连接哪些文件?因为我知道棱角是一个大的图书馆,不应该与其他人连接(至少我不会这样做)。但还有其他的,较小的。

由于我是AngularJs中的新用户(以及javascript,仅基于我从Angular学到的内容),这样做有什么好处?是否会提供更好的表现?更好的代码安全性?

我该怎样做才能让这些事情变得更好? 这些是我想知道的重要问题,以便更好地开发,也是我应用程序的更好的acabamento代码。

编辑

我正在阅读有关此内容的更多内容,除了使代码更安全之外,我还找到了obfuscate代码的选项。我甚至发现了这个npm plugin grunt-obfuscator,但它没有用。据我所知,它不适用于AngularJS。还有另一种方法吗?要混淆代码还是让它更安全?

1 个答案:

答案 0 :(得分:1)

除非你想使用CDN,否则如果你有一个应用程序,肯定会建议连接。没有应用程序脚本,角度依赖性将毫无用处,反之亦然。它们是核心库,第三方库还是您自己的代码并不重要。

主要关注的是加载速度(一个大的js文件将更快下载)。在这种情况下,您不需要再进行任何连接,只需按照加载js文件的顺序进行操作即可。使用GruntGulpany other tool执行此操作。

如果有几组可能加载的js文件,那么事情会变得不同,而某些应用程序部分依赖于其他一些,但不是全部。在这种情况下,应该有几个连接文件。手动连接在这里是低效的,但模块捆绑器是通过捆绑/块。 BrowserifyRequireJSJSPMWebpack都具备此功能。