我正在使用grunt進行項目工作,之前我沒有與grunt一起工作過,而且當前設置爲監視文件以及文件已更改時重新編譯所有文件(包含數百個文件的多個子目錄)將句柄轉換爲html,這很慢。我想通過只編譯需要的東西來提高速度。Grunt:監視文件更改並編譯父目錄
使用grunt newer監視文件並不真正起作用,因爲目錄中存在依賴關係,因此僅重新編譯已更改的文件將不會生成有效的頁面。
我基本上需要重新編譯已更改文件的整個父目錄,但我不太確定如何配置類似的東西。
任何提示,我應該看看?
的組裝本身配置是這樣的:
var _ = require('lodash');
var path = require('path');
// expand the data files and loop over each filepath
var pages = _.flatten(_.map(grunt.file.expand('./src/**/*.json'), function(filepath) {
// read in the data file
var data = grunt.file.readJSON(filepath);
var dest=path.dirname(filepath)+ '/' +path.basename(filepath, path.extname(filepath));
dest=dest.replace("src/","");
var hbs;
if (data.hbs){
hbs=grunt.file.read(path.dirname(filepath)+ '/' + data.hbs)
}
// create a 'page' object to add to the 'pages' collection
return {
// the filename will determine how the page is named later
filename: dest,
// the data from the json file
data: data,
// add the recipe template as the page content
content:hbs
};
}));
return {
options: {
/*postprocess: require('pretty'),*/
marked: {sanitize: false},
data: '<%= options.src %>/**/*.json',
helpers: '<%= options.src %>/helpers/helper-*.js',
layoutdir: '<%= options.src %>/templates',
partials: ['<%= options.src %>/components/**/*.hbs']
},
build: {
options: {
layout: 'base.hbs',
assets: '<%= options.build %>',
pages: pages
},
files: [
{
cwd: '<%= options.src %>',
dest: '<%= options.build %>',
src: '!*'
}
]
},
}
所以每到這個時候加載所有網頁被掃描下來象/src/sites/abc/xyz/foo.json和被編譯,但只有我想要更改文件。 Watch確實檢測到已更改的文件,但是所有文件都會重新編譯,我不知道如何才能將已在配置中識別的已更改文件僅處理部分文件。
你能否告訴我們質疑相關的配置? – raidendev
當然,我已經添加了我所瞭解的組裝過程的基本代碼。 – bardiir