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.
