我有以下文件结构:
application
|- deploy
|----- Gruntfile.js
|-- package.json
|-- public
|----- js
|-- views
|----- templates
在我的Gruntfile.js文件中,我正在尝试编译jade模板,如下所示:
module.exports = function(grunt) {
var templatizer = require('templatizer');
grunt.loadNpmTasks('grunt-execute');
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
execute: {
templatizer: {
options: {
templatesDir: 'need path for ../views/templates', // ?
outputFile: 'need path for ../public/js/templates.js' // ?
},
call: function(grunt, options) {
templatizer(options.templatesDir, options.outputFile);
grunt.log.writeln('Templatizer done');
}
}
}
});
// Default task(s).
grunt.registerTask('default', ['execute:templatizer']);
};
我不明白如何解决templatesDir和outputFile选项的修补程序?
答案 0 :(得分:0)
您可以更轻松地使用templatizer-plugin
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-templatizer');
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
templatizer: {
files: {
'public/js/templates.js': ['views/templates/*'] // paths are relative from your gruntfile
}
}
}
});
// Default task(s).
grunt.registerTask('default', ['templatizer']);
无论你做什么,误用"几乎总是错误的。 execute-plugin。搜索grunt-plugins,如果不存在插件,请创建一个using grunt-init gruntplugin。这真的很容易。
修改强>
我不喜欢在deploy-dir中使用gruntfile。在我看来,它应该始终位于项目的根目录中。如果你想把它留在deploy目录中,你可以在那里运行吗?然后你的配置看起来像这样(记住:路径是相对于你的gruntfile的!):
templatizer: {
files: {
'../public/js/templates.js': ['../views/templates/*']
}
}