visual studio how essentials code web-essentials jscs

web-essentials - studio - web essentials 2018



¿Cómo puedo configurar Web Essentials 2013 para ignorar archivos? (4)

Tengo un nuevo proyecto de aplicación web MVC 5.1 en VS 2013 (Actualización 1) con Web Essential 2013 (más reciente a partir de hoy) instalado. Después de crear el proyecto, Web Essentials busca archivos javascript y publica mensajes en la ventana de resultados en busca de cualquier problema que encuentre. Para un nuevo proyecto MVC 5.1, genera más de 11,000 mensajes, lo que no es realmente útil.

He intentado dos métodos para hacer que ignore los archivos javascript ofensivos que se incluyen con los nuevos proyectos MVC 5 de forma predeterminada:

  1. Usé el comando Web Essentials> Editar configuración global de JSCS para abrir el archivo .jscs.json en mi directorio de perfil de usuario. Luego modificó la propiedad "excludeFiles" a ["test / data / .js", "Scripts / jquery .js"].

  2. Creé un archivo .jshintignore en mi carpeta de Scripts con "jquery * .js".

Ninguno de estos métodos ha tenido ningún impacto en los mensajes JSCS generados. ¿Estoy haciendo algo mal o es un problema con Web Essentials?


La opción excludeFiles en .jscsrc es el camino correcto, pero debe especificarla como una ruta completa del sistema de archivos y no como una ruta relativa para que su proyecto funcione. Tenga en cuenta la barra diagonal hacia adelante / en lugar de sólo el ** . También puede apuntar a carpetas más específicas, pero parece que necesita incluir / para que funcione. Sospecho que podría investigar la documentación global de archivos de nodo para comprender realmente las opciones.

En mi máquina, con Web Essentials 2013 para la Actualización 2, los siguientes pasos deshabilitaron JSCS para todos los archivos:

  • Seleccione el Menú de Web Essentials -> Editar configuración global de JSCS (.jscsrc) ...
  • Agregue "excludeFiles": ["/**"], y guarde el archivo de configuración
  • Ejecute JSCS manualmente en el archivo JS problemático o guárdelo nuevamente (Dependiendo de Herramientas-> Opciones-> Web Essentials-> JavaScript-> Linter-> Ejecutar en la opción de guardar

No es necesario reiniciar Visual Studio.


Tuve el mismo problema después de instalar KendoUI. Era básicamente imposible ejecutar el proyecto. Lo resolví yendo a Web Essentials -> Editar la configuración global de JSCS y agregando:

"excludeFiles": ["Scripts/kendo/*"]

debajo de la entrada "excludeFiles": ["test/data/*.js"] .

Ahora el archivo .jscs.json se ve así:

{ "requireCurlyBraces": ["if", "else", "for", "while", "do", "try", "catch"], "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"], "disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], "disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="], "requireRightStickedOperators": ["!"], "requireLeftStickedOperators": [","], "disallowImplicitTypeConversion": ["string"], "disallowKeywords": ["with"], "disallowMultipleLineBreaks": true, "disallowKeywordsOnNewLine": ["else"], "excludeFiles": ["test/data/*.js"], "excludeFiles": ["Scripts/kendo/*"] "validateJSDoc": { "checkParamNames": true, "requireParamTypes": true } }

Simplemente reemplaza ["Scripts/kendo/*"] con lo que quieras excluir. Trabajó como un encanto para mí.


Web Essentials 2013 Versión 2.3 agrega una nueva forma de solucionar este problema: .weignore. Consulte http://vswebessentials.com/features/general#weignore o https://github.com/madskristensen/WebEssentials2013/pull/1250 . La nueva forma es mejor que la antigua, porque este es el lugar centralizado y consistente para administrar todos los compiladores y linters. Y es más rápido porque la forma anterior todavía tendrá que ejecutar cada archivo de destino por compiladores y linters, y luego será ignorado por ellos. La nueva forma solo se ignorará de Web Essentials, reducirá el tiempo / CPU / disco que se ejecuta en los compiladores y los linters. Y no es necesario entender el formato de configuración específico de cada compilador e intérprete para hacer lo mismo.


Actualización 4:

El nuevo Web Essentials 2013 1.9 tiene "Mejor lógica de ignorar para los corredores de pelusa", todos los problemas están resueltos. Puede activar "Ejecutar en compilación" ahora. Tiene una regla de ignorar predeterminada para la biblioteca js común y js minificada. La siguiente configuración de excludeFiles todavía funciona, pero ya no es necesaria.

Actualización 3:

Cruce mi publicación de https://github.com/madskristensen/WebEssentials2013/issues/603 .

Si no necesita la función de JSHint y JSCS, solo vaya a "Herramientas - Opciones - Web Essentials - JavaScript", configure "Ejecutar en la compilación" y "Ejecutar al guardar" en Falso.

Si desea usarlos, mantenga "Ejecutar en la compilación" Falso, establezca "Ejecutar al guardar" en Verdadero. Todos los js serán JSHint y JSCS mientras se previsualiza, abre y guarda. Con este cambio, puede construir con éxito sin ralentizar. La lista de errores solo se rellenará con los elementos JSHint y JSCS de js abiertos actualmente.

De forma predeterminada, JSHint no se ejecutará en todas las bibliotecas js mínimas y comunes, pero JSCS se ejecutará siempre. Mientras JSCS, puede demorar los segundos de servicio con js minificados. Si no desea esperar, vaya a "Web Essentials - Editar la configuración global de JSCS". Cambio

"excludeFiles": ["test/data/*.js"],

dentro

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

para omitir JSCS solo en minified js. O cambiar a

"excludeFiles": ["**"],

para detener JSCS totalmente, solo mantenga JSHint funcionando.

Por este motivo, puede escribir su propia regla para excluir aquellas que no necesita. Simplemente coloque estrellas dobles al principio, use ''/'' en lugar de ''/', la otra parte solo use una estrella como comodín. Como "**/Scripts/*.js" .

Con la regla de exclusión, seguirá generando un elemento de información xml para cada js, que se solucionará más adelante (con suerte), pero al final puede comenzar a codificar.

Por último, puede actualizar a la versión 1.8.5, pero solo detiene la ejecución de "Ejecutar en la compilación". "Ejecutar en guardar" todavía necesita estos ajustes. Así que no cambia lo que digo aquí.

Espero que estas informaciones sean correctas y útiles, con la versión actual de 1.8 y 1.8.5.

Actualización 1:

Instalar la nueva versión 1.8.5. Se detendrá la función "Ejecutar en la construcción". Eso significa que incluso si lo enciendes, no se ejecutará en la compilación. Pero "Run on save True" se ejecutará y se ejecutará en la vista previa, abrir y guardar. El patrón relativo correcto de excludeFiles es **/Script/** .

Por lo tanto, la regla de exclusión recomendada para js minificados será:

"excludeFiles": ["**/Scripts/**.min.js", "**/Scripts/**.debug.js", "**/Scripts/**.intellisense.js", "**/Scripts/**-vsdoc.js"],

O simplemente use **/Script/** para excluirlos a todos.

El problema <?xml se solucionará en la próxima versión, de acuerdo con los https://github.com/madskristensen/WebEssentials2013/issues/603 de https://github.com/madskristensen/WebEssentials2013/issues/603 . Por lo tanto, este patrón debe ser el correcto final, con un problema que debería y será resuelto por la próxima versión de Web Essentials. O tal vez a continuación, proporcionemos una buena regla de exclusión de archivos predeterminada.

Actualización 2:

Una mejor:

"excludeFiles": ["**/*.min.js", "**/*.debug.js", "**/*.intellisense.js", "**/*-vsdoc.js"],

Excluir todos los js minificados sin importar dónde esté.

La forma fácil que encontré es ir a "Herramientas - Opciones - Web Essentials - JavaScript", configurar Ejecutar en Crear / Guardar en Falso.

Otro método es ir a "Web Essentials - Editar la configuración global de JSCS", para configurar los archivos exclude.

Pero múltiples excludeFiles es sintaxis incorrecta. Debe usar la sintaxis de ["a", "b"].

Y debe usar la ruta absoluta, (mientras se configura en global?) Con el divisor de ruta ''/'', ''/' no está permitido.

El subdirectorio no sirve, debe especificar cada ruta individual.

Así que una configuración válida como esta:

"excludeFiles": ["C:/Solution/Project/Scripts/*", "C:/Solution/Project/Scripts/kendo/*"]

Pero de esta manera se generará otro error de compilación por archivo js:

JSCS parse error: <?xml version="1.0" encoding="utf-8"?> <checkstyle version="4.3"> </checkstyle>

Y el elemento de información por archivo js:

<?xml version="1.0" encoding="utf-8"?> <checkstyle version="4.3"> </checkstyle>

No sé cómo evitarlo. Así que tal vez la mejor manera es la primera manera fácil.