Подтвердить что ты не робот

Что такое соглашение об именах имен файлов javascript?

Должны ли файлы быть названы something-with-hyphens.js, camelCased.js или что-то еще?

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

4b9b3361

Ответ 1

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

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

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

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

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

Примеры:

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

Ответ 2

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

  • Использовать все имена в нижнем регистре. Существуют некоторые операционные системы, которые не чувствительны к регистру для имен файлов, и использование всех строчных букв предотвращает непреднамеренное использование двух файлов, которые отличаются только в том случае, если это может не работать в некоторых операционных системах.
  • Не используйте пробелы в имени файла.. Хотя это технически можно заставить работать, существует множество причин, по которым пробелы в именах файлов могут привести к проблемам.
  • Черта в порядке для разделителя слов. Если вы хотите использовать какой-то разделитель для нескольких слов вместо пространства или камеры, как в various-scripts.js, тире является безопасным и полезным и обычно используемый разделитель.
  • Подумайте об использовании номеров версий в ваших именах.. Если вы хотите обновить свои сценарии, планируйте действия браузера или кэширования CDN. Самый простой способ использования долгосрочного кэширования (для скорости и эффективности), но немедленные и безопасные обновления при обновлении JS файла - это указать номер версии в развернутом имени файла или пути (например, jQuery с jquery-1.6.2.js), а затем вы обновляете или изменяете этот номер версии при каждом обновлении/изменении файла. Это гарантирует, что ни одна страница, запрашивающая более новую версию, никогда не будет обслуживать более старую версию из кеша.

Ответ 3

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

Ответ 4

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

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

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

Одно правило, за которым вы должны следовать, должно быть последовательным в выбранном вами соглашении.

Ответ 5

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

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

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