我正在尝试将workbox-build集成到我的grunt构建系统中,以预缓存文件。 我正在关注这篇文章-generateSW Mode
在遵循上述google文档之后,我将函数定义为
var workBox = require('workbox-build');
function swCache(){
workBox.generateSW({
swPath : path.join('target/app', 'sw_cache.js')
})
.then(function(details){
console.log(details);
})
}
上面的swPath是我的grunt文件的相对路径。 下面我附上了实现上述功能的grunt任务的代码
grunt.task.registerTask('generateSWCache', function(){
swCache();
});
if (env === 'production') {
build = preBuild.concat(productionBuild).concat('generateSWCache');
} else {
build = preBuild.concat(developmentBuild).concat('generateSWCache');
}
答案 0 :(得分:0)
generateSWCache是一个异步任务,因此您应该使用Grunt的this.async函数。
var workBox = require('workbox-build');
function swCache(done) {
workBox.generateSW({
swPath : path.join('target/app', 'sw_cache.js')
})
.then(function(details){
console.log(details);
done(true);
})
.catch(function (err) {
console.log(err);
done(false);
});
}
grunt.task.registerTask('generateSWCache', function(){
swCache(this.async());
});
if (env === 'production') {
build = preBuild.concat(productionBuild).concat('generateSWCache');
} else {
build = preBuild.concat(developmentBuild).concat('generateSWCache');
}