Requirejs 热毛巾:为什么Durandal和Require在应用程序文件夹而不是脚本文件夹中?

Requirejs 热毛巾:为什么Durandal和Require在应用程序文件夹而不是脚本文件夹中?,requirejs,single-page-application,durandal,hottowel,Requirejs,Single Page Application,Durandal,Hottowel,这源于第三方库在脚本中的想法,以阻止开发人员定制它们。这将鼓励他们编写扩展,使其更容易接受任何一个库的新版本。这是Durandal决定使用的惯例,以帮助将您的客户客户端代码组织在应用程序文件夹中,并远离第三方脚本文件夹,后者很快就会变得非常混乱。它确实将require.js放在应用程序文件夹中,因为它依赖require.js及其AMD模式。require.js用于帮助定位所有模块并根据需要加载它们(在应用程序文件夹中) 您是否需要一些特定的东西来防止这种情况发生?对于其他开发人员将duranda

这源于第三方库在脚本中的想法,以阻止开发人员定制它们。这将鼓励他们编写扩展,使其更容易接受任何一个库的新版本。

这是Durandal决定使用的惯例,以帮助将您的客户客户端代码组织在应用程序文件夹中,并远离第三方脚本文件夹,后者很快就会变得非常混乱。它确实将require.js放在应用程序文件夹中,因为它依赖require.js及其AMD模式。require.js用于帮助定位所有模块并根据需要加载它们(在应用程序文件夹中)


您是否需要一些特定的东西来防止这种情况发生?

对于其他开发人员将durandal库误认为是可自定义文件,您提出了一个很好的观点

但是,你不需要把杜兰达尔留在任何地方。文件夹结构可以是您心中想要的任何内容。因为durandal不强制任何文件夹结构。。它只有推荐的默认设置。遵循它的模式是有好处的

将durandal保留为应用程序根文件夹的一部分。它将所有amd javascript文件保存在一个根文件夹中。这样,当您运行durandal时,它可以扫描每个子文件夹,将所有html/css/js压缩/缩小/丑化为一个文件。这是一个很好的好处,因为它是整个应用程序的一键构建

另外,这是一个很好的分离,因为如果您使用a将所有第三方库压缩到一个单独的文件中,那么以这种方式将第三方非amd JavaScript库保存在一个单独的文件夹结构中是一个好主意。浏览器可以将应用程序与第三方库分开缓存。因为第三方库不会经常更改,而您的应用程序可能会经常更改


但是durandal的约定都是完全可配置的,您可以将durandal放置在任何您喜欢的位置。

我接受您的回答,现在了解durandal约定。然而,我认为Durandal的某些部分是其功能的核心。如果您有多个SPA的情况,您会希望所有SPA共享/缓存Durandal的核心代码。我的观点来自ExtJs,在ExtJs中,应用程序文件夹中的所有内容都是应用程序自定义的。其他应用程序可以共享的所有内容都在脚本文件夹或CDN中。脚本中的内容从来没有直接编辑过——只是通过扩展文件间接编辑过。《公约》非常明确地规定了哪些内容应该编辑,哪些内容不应该编辑。