Сообщение от kobezzza
|
У меня это вебшторм делает
|
В большом проекте это не вариант, да и не заставишь всех перейти на какой-то редактор.
Да я и сам часто пишу код в vim'e
Сообщение от nerv_
|
а можно напримере?
|
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
/** @param {string} string */
function hello(string) {
return string
}
hello(1);
Будет получено предупреждение:
Number of warnings: 1
JSC_TYPE_MISMATCH: actual parameter 1 of hello does not match formal parameter
found : number
required: string at line 6 character 6
hello(1);
В моем случае будет ошибка, а не ворнинг и коммит не пройдет .
Протестить можно тут
http://closure-compiler.appspot.com/
Список опций тут
http://code.google.com/p/closure-compiler/wiki/Warnings
Мой конфиг:
#! /usr/bin/env sh
# Google closure compiler
# [url]http://code.google.com/p/closure-compiler/wiki/Warnings[/url]
# --compilation_level
# WHITESPACE_ONLY | SIMPLE_OPTIMIZATIONS | ADVANCED_OPTIMIZATIONS
# --compilation_level
# QUIET | DEFAULT | VERBOSE
timestamp=debug # `date +%s`
compiler=../tools/google/closure-compiler/build/compiler.jar
output=../cache/static/__init__
java -jar ${compiler} \
--js="${output}.js" \
--externs=../trunk/__slot__.js \
--js_output_file="${output}.${timestamp}.js" \
--create_source_map="${output}.${timestamp}.json" \
--warning_level=QUIET \
--summary_detail_level=3 \
--charset=UTF-8 \
--language_in=ECMASCRIPT5_STRICT \
--compilation_level=SIMPLE_OPTIMIZATIONS \
--formatting=SINGLE_QUOTES \
--jscomp_error=ambiguousFunctionDecl \
--jscomp_error=checkDebuggerStatement \
--jscomp_error=checkRegExp \
--jscomp_error=checkVars \
--jscomp_error=const \
--jscomp_error=constantProperty \
--jscomp_error=es5Strict \
--jscomp_error=internetExplorerChecks \
--jscomp_error=invalidCasts \
--jscomp_error=missingProperties \
--jscomp_error=suspiciousCode \
--jscomp_warning=undefinedNames \
--jscomp_error=undefinedVars \
--jscomp_warning=uselessCode \
--jscomp_warning=externsValidation \
--jscomp_warning=duplicate \
--jscomp_warning=deprecated \
--jscomp_warning=accessControls \
--jscomp_warning=visibility \
--jscomp_warning=checkTypes \
--jscomp_warning=fileoverviewTags \
--jscomp_warning=nonStandardJsDocs \
--jscomp_warning=strictModuleDepCheck \
--jscomp_warning=unknownDefines \
# --jscomp_warning=globalThis \
# --source_map_format=DEFAULT \
# --use_types_for_optimization \
# --create_name_map_files=true \
# --print_ast \
# --print_pass_graph \
# --print_tree \