Всегда ли безопасно вставлять разрыв строки после точки с запятой? - PullRequest
1 голос
/ 04 января 2011

У меня проблема с проверкой минимизированного файла JavaScript в Clearcase. Файл, о котором идет речь, представляет собой одну строку, значительно превышающую предел 8000 символов, который Clearcase налагает .

Я знаю, что интерпретаторы JavaScript делают некоторые хитрые вещи вставляя точки с запятой при переносе строки, но мне интересно, всегда ли безопасно добавлять разрыв строки после точки с запятой. Возможно ли, что это изменит смысл кода JavaScript?

Ответы [ 5 ]

5 голосов
/ 04 января 2011

Чтобы ответить на ваш ближайший вопрос: да, вы можете добавить разрывы строк после точки с запятой, заканчивающей оператор.В файле могут использоваться другие точки с запятой (например, внутри строки или регулярного выражения), и вам не следует их трогать.

У меня к вам еще один вопрос: почему вы проверяете минимизированный файл JavaScript?Я думаю, что лучше проверить исходный подробный источник JavaScript.Кроме того, системы контроля версий неэффективны для файлов только одной строки.Если вы уже проверяете исходный JavaScript, вам необходимо поддерживать согласованность между двумя файлами (т. Е. При изменении одного необходимо обновить другой).Я предлагаю включить сценарий, который уменьшит исходную при ее развертывании вместо сохранения минимизированной версии в Clearcase.

3 голосов
/ 10 ноября 2012

Администратору или, возможно, разработчику необходимо запускать эту команду для каждого VOB, в котором хранится артефакт (в контексте требуемого VOB) (не уверен на 100% в отношении -supertype, может быть лучше «binary_file») (на 100% не уверен в-mergetype, «копия» может быть лучше!) (вы всегда можете изменить это позже с помощью опции -replace)

cleartool mkeltype -nc -supertype text_file -manager z_whole_copy -mergetype auto text_file_minified

Это можно использовать для исправления файлов, которые не удалось проверить.Вероятно, они были созданы с типом «text_file». Отдельные строки типов text_file не могут превышать 8000 символов.

cleartool chtype -nc -force text_file_minified jquery-1.8.2.min.js

Поместите этот файл на компьютер с настольным ПК / dev, где вы регистрируетесь.Удалите все начальные пробелы.

# AAA.magic
# This needs to copied to all developer desktops
# copy it next to default.magic (or cc.magic)
#   under ...\ClearCase\config\magic

# Leave these from the default.magic just in case
# files are processed in alphabetic order, hence the AAA prefix

# Check stat type
directory : -stat d ;
block_device : -stat b ;
char_device : -stat c ;
socket : -stat s ;
fifo : -stat f ;

# minified javascript and CSS
# some of these violate the 8000 character per line limit 
#  of clearcase text tools/type managers
# *.min.js
text_file_minified : -name "*.[mM][iI][nN].[jJ][sS]" ;
# *.min.css
text_file_minified : -name "*.[mM][iI][nN].[cS][sS][sS]" ;
3 голосов
/ 04 января 2011

Если точка с запятой находится внутри строки или регулярного выражения (например, var rex = /;/g; - вставлять разрыв строки после второй точки с запятой можно только безопасно), тогда да, это, очевидно, будет проблемой.В противном случае всегда безопасно иметь разрыв строки после оператора.

3 голосов
/ 04 января 2011

Точка с запятой может быть заключена в строку. Добавление разрыва строки к строке изменит смысл javascript.

0 голосов
/ 04 января 2011

Точка с запятой в Javascript всегда определяет конец строки кода.

Учитывая это, всегда должно быть безопасно добавлять разрыв строки после точки с запятой, если только эта точка не является частьюстрока.

...