我正在使用 gruntjs 构建我的 js 应用程序。我的 grunt 文件设置为运行两个单独的构建,其中 80% 的代码对于两者都是相同的,并且根据构建我们包含其他文件并排除一些文件。
我有 grunt setup 可以正确运行两个不同的构建,除非我不能告诉 grunt-regard 运行多次。
regarde:
coffeeScripts:
files: ['app/scripts/kiosk/*.coffee', 'app/scripts/*.coffee'],
tasks: ['coffee:compileKiosk', 'livereload']
stylusScripts:
files: ['app/css/kiosk/*.styl', 'app/css/*.styl'],
tasks: ['stylus:compileKiosk', 'livereload']
coffeeScriptsWeb:
files: ['app/scripts/web/*.coffee', app/scripts/*.coffee],
tasks: ['coffee:compileWeb', 'livereload']
stylusScriptsWeb:
files: ['app/css/web/*.styl', 'app/css/*.styl],
tasks: ['stylus:compileWeb', 'livereload']
我希望能够执行类似于以下任务的操作,但只有第一个受关注的任务运行,第二个被忽略。
grunt.registerTask 'watchKiosk', ['livereload-start', 'regarde:coffeeScripts', 'regarde:stylusScripts']
grunt.registerTask 'watchWeb', ['livereload-start', 'regarde:coffeeScriptsWeb', 'regarde:stylusScriptsWeb']
我的文件夹结构看起来像
app (application root)
scripts (contains common script files)
kiosk (contains script files only for kiosk build)
web (contains script files only for web build)
css (contains common css files)
kiosk (contains css files only for kiosk build)
web (contains css files only for web build)
理想情况下,在使用 web 构建时,我不想在文件更改时重新编译所有 kiosk 文件和 web 文件。
有什么方法可以设置 grunt 以定义多个相关任务并运行我想要为我正在处理的构建的特定任务?
如果我运行这些 grunt 任务,手表可以工作,但会重建不属于我正在使用的特定构建的文件
grunt.registerTask 'watchKiosk', ['livereload-start', 'regarde']
grunt.registerTask 'watchWeb', ['livereload-start', 'regarde']