Javascript Grunt-如何从外部项目运行常见的外部任务
我刚开始使用Grunt,我想有一个通用的项目,在那里我可以定义通用的任务。之后,每个团队都可以创建自己的项目,并能够将我的公共项目添加为依赖项并运行公共任务 当您想向FE构建管道添加一些预定义任务时,这也很有用。当有人将该项目推送到github并尝试使用Jenkins来构建它时,默认情况下我还想运行一些其他任务(比如jslint、uglify、compress、nexus deploy等)Javascript Grunt-如何从外部项目运行常见的外部任务,javascript,node.js,build,gruntjs,build-process,Javascript,Node.js,Build,Gruntjs,Build Process,我刚开始使用Grunt,我想有一个通用的项目,在那里我可以定义通用的任务。之后,每个团队都可以创建自己的项目,并能够将我的公共项目添加为依赖项并运行公共任务 当您想向FE构建管道添加一些预定义任务时,这也很有用。当有人将该项目推送到github并尝试使用Jenkins来构建它时,默认情况下我还想运行一些其他任务(比如jslint、uglify、compress、nexus deploy等) 我尝试通过创建一个包含所有这些常见任务的grunt项目,然后将其作为依赖项添加到其他项目中来实现这一点。问
我尝试通过创建一个包含所有这些常见任务的grunt项目,然后将其作为依赖项添加到其他项目中来实现这一点。问题是我无法从外部项目运行常见任务。有没有其他方法可以实现这一点?不太喜欢将所有任务放在一个存储库中并将其拉入,但这是可能的 我以前没有做过这件事(我从目录中做过loadTasks,它可以正常工作),我不喜欢它。但我看到了两种可能性: 1。使用子模块 您可以使用将任务repo拉入项目repo的文件夹中,并从项目repo加载任务 从文件夹加载任务的方式如下(加载此文件夹中的所有文件!):
2。使用1 Git回购并通过NPM安装 创建一个包含任意多个任务的存储库。一个任务应该驻留在一个文件中(它只适用于一个文件,但我不推荐它) 然后,您可以在项目中作为简单的开发人员依赖项安装git repo: 要使其工作,您的GrunFile需要为这两个任务配置目标
我会做什么 我自己会为每个任务创建一个git repo,并将每个任务分别安装到我需要的项目中(从git repo安装npm) 将对社区有用的任务发布到npm注册表。用于创建新任务
关于构建过程: 只需在GrunFile中添加一个别名任务,其中包含您希望在新提交中运行的所有任务:
grunt.registerTask('jenkins', ['jslint', 'compress', ...]);
并将jenkins配置为运行此任务(您需要在项目配置中添加git钩子和源代码管理),并将shell脚本配置为构建步骤:
npm install && grunt jenkins
或者更好的方法是,在package.json中添加一个并使用test命令
我在这个话题上创造了一个更好的答案,不幸的是,这个答案被删除了(我不知道为什么,它有很多投票权……):
下面是关于自定义任务开发的另一个答案:
您提出了一些有效且有趣的观点。我会重新考虑整个情况,也许在那之后,我会发布我的选择。非常感谢。
$ npm install git+ssh://your-tasks-repo.git --save-dev
grunt.registerTask('jenkins', ['jslint', 'compress', ...]);
npm install && grunt jenkins