Что такое соглашение об именовании файлов javascript? [закрытый]

должны ли файлы называться чем-то-с-дефисами.Яш, в формате.JS или что-то еще?

Я не нашел ответа на этот вопрос здесь.

5 ответов


одно из возможных соглашений об именах-использовать что-то похожее на схему именования, используемую jQuery. Это не общепринято, но довольно распространено.

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

здесь product-name + plugin пара также может представлять собой пространство имен и модуль. The version и filetype обычно необязательно.

filetype может быть что-то относительно того, как содержимое этого файла. Часто видимый являются:

  • min для сжатых файлов
  • custom для пользовательских встроенных или измененных файлов

примеры:

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

Я не знаю какого-либо конкретного соглашения для файлов javascript, поскольку они не являются уникальными в интернете по сравнению с CSS-файлами или html-файлами или любым другим типом файлов. Есть некоторые "безопасные" вещи, которые вы можете сделать, что делает его менее вероятно, вы случайно столкнетесь с кросс-платформенной проблемой:

  1. используйте все строчные имена. есть некоторые операционные системы, которые не чувствительны к регистру для имен файлов и использование всех строчных предотвращает непреднамеренно использование двух файлов, которые отличаются только в том случае, если они могут не работать в некоторых операционных системах.
  2. не используйте пробелы в имени файла. хотя это технически может быть сделано для работы, есть много причин, почему пробелы в именах файлов могут привести к проблемам.
  3. дефис в порядке для разделителя слов. если вы хотите использовать какой-то разделитель для нескольких слов вместо пробела или camelcase, как в various-scripts.js, дефис является безопасным и полезным и обычно используется сепаратор.
  4. подумайте об использовании номеров версий в именах файлов. когда вы хотите обновить свои скрипты, планируйте эффекты кэширования браузера или CDN. Самый простой способ использовать долгосрочное кэширование (для скорости и эффективности), но немедленные и безопасные обновления при обновлении JS-файла-включить номер версии в развернутое имя файла или путь (как это делает jQuery с jquery-1.6.2.js), а затем вы ударяете/меняете этот номер версии при каждом обновлении/изменении папка. Это гарантирует, что ни одна страница, запрашивающая более новую версию, никогда не будет обслуживаться более старой версией из кэша.

нет никакого официального,универсальная, соглашение об именовании файлов 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

вопрос в ссылке, которую вы дали, говорит об именовании переменных JavaScript, а не об именовании файлов, поэтому забудьте об этом для контекста, в котором вы задаете свой вопрос.

Что касается именования файлов, это чисто вопрос предпочтения и вкуса. Я предпочитаю называть файлы дефисами, потому что тогда мне не нужно тянуться к клавише shift, как я делаю при работе с именами файлов camelCase; и потому, что мне не нужно беспокоиться о различиях между именами файлов Windows и Linux (Windows имена файлов не зависят от регистра, по крайней мере, через XP).

таким образом, ответ, как и многие, "это зависит" или " это зависит от вас."

единственное правило, которому вы должны следовать, - быть последовательными в выбранной вами конвенции.


Я обычно предпочитаю дефисы с нижним регистром, но одна вещь еще не упомянута, что иногда приятно, чтобы имя файла точно соответствовало имени одного модуля или инстанцируемой функции, содержащейся внутри.

например, у меня есть раскрывающий модуль, объявленный с var knockoutUtilityModule = function() {...} в свой файл по имени knockoutUtilityModule.js, хотя объективно я предпочитаю knockout-utility-module.js.

аналогично, поскольку я использую механизм связывания для объединения скриптов, Я взял для определения обрабатываемого функции (модели шаблонный вид и т. д.) Каждый в своем файле, в стиле C#, для ремонтопригодности. Например, ProductDescriptorViewModel живет самостоятельно внутри ProductDescriptorViewModel.в JS (я использую верхний регистр для обрабатываемого функции).