visual tutorial tools studio side node instalar for code node.js asp.net-mvc visual-studio-2017

tutorial - node.js server-side javascript virus



Visual Studio 2017-Node.JS Server Process-¿Desactivar? (7)

Estoy trabajando en una aplicación ASP.NET en Visual Studio 2017 y noto un Node.JS: proceso de Javascript del lado del servidor que se ejecuta en 1.3GB a 1.8GB de memoria. Mi proceso de trabajo de IIS tiene el tamaño normal que tiene VS 2015.

Mi aplicación no incluye ninguna biblioteca Node.JS. No puedo encontrar la manera de desactivar este Nodo.JS: proceso Javascript del lado del servidor. Está consumiendo demasiada memoria para algo para lo que no tengo uso.

¿Hay alguna forma de eliminar esto además de desinstalar VS 2017 y volver a VS 2015?

Matar el proceso principal en el Administrador de tareas no afecta nada en VS, sin embargo, si voy a la pestaña Detalles y elimino los procesos individuales en ejecución, se bloquea Visual Studio. Tomé un video de lo que sucedió después de que finalicé el proceso y ejecuté mi página web local (perdón por la calidad, así que el tamaño de la imagen es tan limitado a 2 MB)


Algo que puede ayudar a los proyectos a mitigar el peso del nodo: es reasignar la versión del nodo utilizada en Herramientas> Opciones> Proyectos y soluciones> Administración de paquetes web a una versión instalada de 64 bits. Studio aún lanzará su Nodo interno para una instancia de tsserver.js, pero cualquier mecanografiado en el proyecto tendrá la versión provista por defecto, y esto me ayudó de primera mano.

Además, otra vez que encontré que el servicio de idiomas se estaba agotando, descubrí que usaba un simple tsconfig.json sobre los directorios utilizados como repositorios, y especifico skipLibCheck: true , y skipLibCheck: true node_modules para excluirlo; me ayudó enormemente a lo largo del servicio, y un archivo hace todas las carpetas debajo de él, independientemente de las referencias directas del proyecto. PD: si aún desea la compatibilidad con JavaScript intellisense, asegúrese de establecer la allowJs: true y noEmit: true .

Por último, verifique en las Opciones de mecanografiado en Herramientas> Opciones> Editor de texto> Javascript / Mecanografiado> Proyecto que no está marcado para compilar automáticamente archivos de Mecanografiado que no son parte de un proyecto, ya que también puede vincular recursos para proyectos auxiliares de terceros usando nodo o mecanografiado.

Estos no son infalibles, cada uno tiene que encontrar su cuello de botella exacto, pero he descubierto que estos han funcionado para mí y para mi equipo la mayoría de las veces


Debe deshabilitar la compatibilidad con TypeScript en Visual Studio:

Herramientas> Extensiones y actualizaciones> TypeScript para Microsoft Visual Studio> Desactivar

Después de eso, simplemente reinicie Visual Studio y estará listo.


Elevé comentarios sobre este tema:

https://developercommunity.visualstudio.com/content/problem/31406/visual-studio-2017-nodejs-server-process-turn-off.html

Recibí respuesta de un equipo de MS; me dirigió a esta publicación:

https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629

El proceso node.exe tiene la línea de comando:

Efectivamente me dijeron:

En VS 2017, se implementan varias características en JavaScript. Visual Studio utiliza Node.js para ejecutar ese JavaScript. Entre otras cosas, Node se usa para ejecutar el código que proporciona servicios de formateo e inteligencia cuando un usuario edita TypeScript o JavaScript. Este es un cambio de VS 2015.

Responde a mi pregunta, pero saca a la luz otra: ¿por qué necesita 1,4 GB de memoria para darme inteligencia en los archivos JavaScript ... o esta es una de las soluciones que se ha incorporado en VS para que use menos memoria? No alcanza el límite de 2 GB (4 GB) de los procesos de 32 bits? Preguntas preguntas preguntas.


Herramientas> Opciones> Editor de texto> JavaScript / TypeScript> Servicio de lenguaje ...

Desmarque ''Habilitar el nuevo servicio de lenguaje JavaScript''.

Esto parece evitar que se inicie el proceso NodeJS.


La respuesta de Ryan Ternier me señaló en lo que creo que es la dirección correcta. Seguir su enlace ( https://developercommunity.visualstudio.com/content/problem/27033/nodejs-server-side-javascript-process-consuming-to.html?childToView=27629#comment-27629 ) me llevó a la respuesta de Bowden Kelly , justo debajo de la respuesta aceptada.

Aquí está la respuesta de Bowden Kelly:

El proceso de nodo que está viendo está activando el servicio de lenguaje JavaScript. Verá que este proceso aparece cada vez que edite un archivo JS, un archivo TS o cualquier archivo con JS / TS dentro (html, cshtml, etc.). Este proceso es lo que potencia IntelliSense, navegación de código, formateo y otras funciones de edición y lo hace analizando todo el contexto de su proyecto. Si tiene muchos archivos .js en su proyecto, esto puede agrandarse, pero lo más probable es que tenga muchos archivos de biblioteca que se están analizando. Por defecto, escanearemos todos los archivos .js / .ts de su proyecto. Pero puede anular este comportamiento y ajustar el servicio de idiomas para centrarse solo en su código. Para hacer esto, cree un tsconfig.json en la raíz de su proyecto con la siguiente configuración:

{ "compilerOptions": { "allowJs": true, "noEmit": true }, "exclude": [ "wwwroot/lib" //ignore everything in the lib folder (bootstrap, jquery, etc) // add any other folders with library code here ], "typeAcquisition": { "enable": true, "include": [ "bootstrap", "jquery" //list libraries you are using here ] } }

Una vez que agregué la carpeta con todas mis bibliotecas de scripts en el archivo tsconfig.json, la vida volvió a ser buena.


La solución más sucia: simplemente cambie el nombre de ServiceHub.Host.Node.x86.exe a otra cosa. No me ha molestado desde entonces. Cuando (si) realmente lo necesita, simplemente cámbiele el nombre.

El mismo truco funciona en Adobe Photoshop, que también ejecuta Node por alguna razón que aún no he descubierto en mi flujo de trabajo habitual.

Resulta que ...

No puede simplemente cambiarle el nombre y esperar que las cosas sigan funcionando. ¡Quien sabe!

Aparentemente, este truco de cambio de nombre solo funciona si suspende el proceso VS y elimina Node, luego reanuda VS. Si intenta iniciar VS con el archivo Node exe renombrado, se bloqueará al abrir un proyecto con un "error duro desconocido". Además, mientras trabaja en un proyecto ya cargado, el contador de referencia diferido de los métodos y propiedades anteriores no funcionará porque aparentemente eso depende de que Node esté allí de alguna manera.

Por lo tanto, podría estar bien suspender el proceso Node y dejar que la paginación de Windows intercambie su memoria del ram en el disco duro, sin cambiar el nombre del exe para que pueda iniciar el VS nuevamente más tarde sin pasar por la molestia de cambio de nombre. Si estás dispuesto a vivir con las consecuencias, eso es.