2013-12-17 43 views
4

我正在编写一个grunt插件,这将有助于我经常使用的构建过程。我通常最终做的是将我的GruntFile从项目复制/粘贴到项目中,但我认为将它放入插件可能会更有用。我用于此构建过程的任务通常是繁重的任务,例如jshint,copy,cssmin,lessuglify等等。我想如果我能创建一个只需要一些配置并运行所有这些任务的插件,我就可以清理掉我的文件Gruntfile.js如何在grunt插件中运行其他注册的grunt任务?

我目前的设置通常是这样的:

grunt.initConfig({ 
    jshint: {/* ... */}, 
    copy: {/* ... */}, 
    less: {/* ... */}, 
    cssmin: {/* ... */}, 
    uglify: {/* ... */} 
}); 

    // Load and Register tasks... 

,但我想,以减少initConfig到这样的事情:

grunt.initConfig({ 
    build: { 
    dev: { 
     paths: { 
     public: 'public', 
     source: 'source', 
     bower: 'bower_components' 
     }, 
     options: { 
     pretty: true, 
     minify: false 
     } 
    } 
    } 
}); 

这是不是可以从内完成咕噜插件?

编辑: 我发现了类似于我正在寻找的东西,但它似乎并没有那么优雅,特别是所有需要手动设置的配置,但也许值得。

How can I run a grunt task from within a grunt task?

回答

4

我能得到的东西与建议对您在第一次编辑后有链接的其他问题的解决方案工作。重点在于它仍然缺少任务的加载,因为它们的用例不是来自插件内部。

我结束了创建一个新公共管理模块包装我的解决方案,你可能会想看一看:

https://www.npmjs.org/package/extend-grunt-plugin