Búsqueda de sitios web

gruntjs - intellisense en Gruntfile.js


¿Es posible tener IntelliSense funcionando en un Gruntfile?

Dado que 'grunt' no es una variable global sino un parámetro en el Gruntfile, VSCode asumirá que es solo un parámetro de función desconocido 'any'.

module.exports = function(grunt) {...}

Cuando agrego el tipo al parámetro, Intellisense funciona perfectamente, pero Grunt no, ya que es JS y no TS.

module.exports = function(grunt: IGrunt) {...}

Respuesta #1

Pasos para los no iniciados...

Configurar tipos

Instalar Tipos para Grunt

npm install --save @types/grunt 

Ubicar archivo de Tipos

Asegúrate de que tu IDE conozca la ubicación de este archivo de definiciones:

./node_modules/@types/grunt/index.d.ts

Usando la autocompletación

Esto es posible en .ts o .js, el que prefieras... (Yo uso TypeScript, porque el compilador realiza muchas verificaciones de seguridad de tipos)

Autocompletado en Typescript

Renombra tu gruntfile.js existente a gruntfile.ts.

Agrega el tipo IGrunt para habilitar la autocompletación:

module.exports = function (grunt: IGrunt) {
    // auto-complete works for grunt-dot now
    ...
}

Por último, recuerda compilar tu gruntfile.ts para que produzca un nuevo gruntfile.js.

Autocompletado en Javascript

Si prefieres evitar TypeScript...

Usa jsdoc para habilitar la autocompletación en JavaScript:

/**
* 
* @param {IGrunt} grunt
*/
module.exports = function (grunt) {
    // auto-complete works for grunt-dot now
    ...
}

Respuesta #2

Puedes crear gruntfile.ts y usar TypeScript con intellisense. La versión compilada (gruntfile.js) será entonces utilizada por GruntJs.