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

rip*_*234 261 javascript naming-conventions

应该将文件命名为some-with-hyphens.js,camelCased.js还是其他什么?

我在这里找不到这个问题的答案.

Bry*_*ard 171

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

product-name.plugin-ver.sion.filetype.js
Run Code Online (Sandbox Code Playgroud)

其中product-name+ plugin对也可以表示命名空间模块.在versionfiletype通常是可选的.

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

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

例子:

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

  • 我同意你说的话.但是我目前正在努力解决一件事:如果'插件'包含两个单词怎么办?用点分隔它们?jquery.myPlugin-1.0.0.js或jquery.my.plugin-1.0.0.js或jquery.my_plugin-1.0.0.js或jquery.myplugin-1.0.0.js甚至可能是jquery.my-plugin- 1.0.0.js?也许你可以用它完成你的例子,谢谢! (30认同)
  • 那么[AMD](http://en.wikipedia.org/wiki/Asynchronous_module_definition)模块怎么样?如果您在文件名中使用版本,则必须在版本号更改时更改大量文件. (4认同)
  • @junior,这是一个老帖子,但快速[bower搜索](http://bower.io/search/?q=jquery-)显示jquery插件不遵循任何特定约定.似乎(1)将单词推到一起,(2)使用spine-case,(3)使用camelCase,所有这些都使用大致相等的频率. (3认同)

jfr*_*d00 120

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

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


zzz*_*Bov 53

命名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

  • 这个命名惯例的美妙之处在于它明确地描述了被添加的全局命名空间污染.从未注意到这一点 (8认同)
  • 我唯一的问题是如果你有一个创建 `Foo` 或 `myFoo` 的文件该怎么办,你会分别将文件命名为 `Foo.js` 或 `myFoo.js` 吗? (2认同)

Pet*_*son 12

您提供的链接中的问题涉及JavaScript变量的命名,而不是文件命名,因此请在您提出问题的上下文中忘记这一点.

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

所以答案就像许多人一样,是"取决于"还是"取决于你".

您应遵循的一条规则是在您选择的约定中保持一致.

  • 连字符与camelCase推理的+1. (5认同)

Tom*_*all 6

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

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

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