什么是javascript文件名命名约定?

时间:2011-09-01 16:24:17

标签: javascript naming-conventions

文件应该用hyphens.js,camelCased.js或其他东西命名吗?

我没有找到这个问题的答案here

5 个答案:

答案 0 :(得分:153)

一种可能的命名约定是使用与jQuery使用的命名方案类似的东西。它并非普遍采用,但它很常见。

product-name.plugin-ver.sion.filetype.js

其中product-name + plugin对也可以代表namespace and a moduleversionfiletype通常是可选的。

filetype可以是与文件内容相关的内容。经常看到的是:

  • min用于缩小文件
  • custom用于自定义构建或修改的文件

示例:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js

答案 1 :(得分:108)

我不知道javascript文件的任何特定约定,因为它们在网络上不是唯一的,而不是css文件或html文件或任何其他类型的文件。您可以做一些“安全”的事情,使您不太可能意外地遇到跨平台问题:

  1. 使用所有小写文件名。有些操作系统对文件名不区分大小写,并且使用全部小写可防止无意中使用两个文件,这些文件只有在某些操作系统上可能无法使用的情况下才会有所不同。
  2. 不要在文件名中使用空格。虽然技术上可以使用,但文件名中的空格可能导致问题的原因很多。
  3. 对于单词分隔符,连字符是正常的。如果要对various-scripts.js中的多个单词而不是空格或camelcase使用某种分隔符,则连字符是安全的和有用的常用分离器。
  4. 考虑在文件名中使用版本号。如果要升级脚本,请计划浏览器或CDN缓存的效果。使用长期缓存(速度和效率)的最简单方法,但升级JS文件时立即安全升级是在部署的文件名或路径中包含版本号(就像jQuery与jquery-1.6.2.js一样) )然后在升级/更改文件时碰撞/更改该版本号。这将保证不会从缓存中为旧版本提供请求较新版本的页面。

答案 2 :(得分:49)

没有正式的通用,用于命名JavaScript文件。

有各种选择:

  • scriptName.js
  • script-name.js
  • script_name.js

都是有效的命名约定,但更喜欢jQuery建议的命名约定(对于jQuery插件,虽然它适用于任何JS)

  • jquery.pluginname.js

这个命名惯例的美妙之处在于显式描述了添加的全局命名空间污染。

  • foo.js添加window.foo
  • foo.bar.js添加window.foo.bar

因为我省略了版本控制:它应该在全名之后,最好用连字符分隔,主要版本和次要版本之间有句号:

  • foo-1.2.1.js
  • foo-1.2.2.js
  • ...
  • foo-2.1.24.js

答案 3 :(得分:12)

您提供的链接中的问题涉及JavaScript变量的命名,而不是文件命名,所以请忘记您提出问题的上下文。

至于文件命名,纯粹是偏好和品味的问题。我更喜欢用连字符命名文件,因为那时我不必像处理camelCase文件名那样触及shift键;因为我不必担心Windows和Linux文件名之间的差异(Windows文件名不区分大小写,至少通过XP)。

所以答案就像许多人一样,是“它取决于”还是“取决于你”。

您应遵循的一条规则是在您选择的惯例中保持一致。

答案 4 :(得分:6)

我通常更喜欢小写的连字符,但有一点尚未提及的是,有时候让文件名与单个模块的名称或包含在其中的可实例化函数完全匹配是件好事。

例如,我在自己的文件中用var knockoutUtilityModule = function() {...}声明了一个名为knockoutUtilityModule.js的揭示模块,虽然客观上我更喜欢knockout-utility-module.js。

同样,由于我使用捆绑机制来组合脚本,因此为了可维护性,我已经在他们自己的文件C#样式中定义了可实例化的函数(模板化视图模型等)。例如,ProductDescriptorViewModel在ProductDescriptorViewModel.js中独立存在(我使用大写来实现可实例化的函数)。