在Grunt中,我有一个自定义多任务,它从HTML文件中提取路径,并使用grunt.config.set()
将找到的路径添加到名为“pathsfound”的配置中的数组中。
我想使用grunt.config.get()
访问这些路径,以便我可以使用它们进行连接,uglify等。
Gruntfile.coffee
pathfinder:
dist:
files: [
expand: true
cwd: '<%= yeoman.app %>'
src: '*.html'
]
concat:
dist:
src: grunt.config.get('pathsfound')
dest: 'stuff.js'
我的注册任务如下:
grunt.registerTask 'dist', ['pathfinder:dist', 'concat:dist']
但是,concat任务给出了TypeError: Cannot call method 'indexOf' of undefined
错误,表明grunt.config.get()
无法在initConfig中找到pathsfound
变量。
在initConfig阶段有没有办法延迟加载配置变量?
答案 0 :(得分:5)
你编写它的方式,grunt.config.get
调用是在构建配置对象时执行的,所以你的变量还没有。
稍后使用grunt加载它们的方法是使用模板:
concat:
dist:
src: "<%= pathsfound.bower %>"
在任务运行之前,模板会延迟扩展。如果设置配置的任务在需要它的任务之前运行,它应该可以工作。