是否可以在Gruntfile中使用intellisense?
由于'grunt'不是全局变量,但Gruntfile VSCode中的参数将假设它只是一个未知的函数参数'any'。
data()
当我向参数添加类型时,intellisense工作得很好,但是grunt不会,因为它是JS而不是TS。
module.exports = function(grunt) {...}
答案 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
似乎也不起作用。