Gruntfile.js中的intellisense

时间:2015-11-25 09:19:03

标签: gruntjs typescript intellisense visual-studio-code

是否可以在Gruntfile中使用intellisense?

由于'grunt'不是全局变量,但Gruntfile VSCode中的参数将假设它只是一个未知的函数参数'any'。

data()

当我向参数添加类型时,intellisense工作得很好,但是grunt不会,因为它是JS而不是TS。

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

3 个答案:

答案 0 :(得分:2)

不熟悉的步骤......

设置类型

为Grunt安装类型

npm install --save @types/grunt 

找到打字文件

确保您的IDE知道此打字文件的位置:

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

使用自动完成

这可以在.ts或.js中,无论你喜欢什么...(我使用typescript,因为编译器进行了很多类型安全检查)

打字稿中的自动完成

将现有的gruntfile.js重命名为gruntfile.ts。

添加IGrunt类型以启用自动完成:

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

最后,记得编译你的gruntfile.ts,以便它生成一个新的gruntfile.js。

在Javascript中自动完成

如果您愿意避免使用打字稿......

使用jsdoc在javascript中启用自动完成功能:

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

答案 1 :(得分:1)

您可以创建gruntfile.ts并使用带有智能感知的TypeScript。编译后的版本(gruntfile.js)将由GruntJs使用。

答案 2 :(得分:0)

如果您要坚持使用JavaScript,它将与您的JavaScript一样运行,但是具有智能感知的功能和grunt: IGrunt一样好:

/**
 * @param {IGrunt} grunt
 */
module.exports = function (grunt) {...}

(为什么是,{em>已经 another answer)建议这样做,但是我想明确地说,这可能全部

在Visual Studio Code中,如果您将typescript.disableAutomaticTypeAcquisition设置为true(或者该功能遇到某种障碍)并且在您的计算机中没有@types/grunt,则此方法将无效package.json,但是如果有任何情况,grunt: IGrunt似乎也不起作用。