将 jekyll 添加到 yeogurt 生成的 gruntjs 设置后发生堆栈溢出
Stack overflow after adding jekyll to the gruntjs setup generated by yeogurt
我使用 yeoman 酸奶生成器来启动我的项目。
生成的 grunt 文件使用(据我所知)include-all 和 grunt-jit 来加载模块。
我想做的是将 jekyll 的构建添加到这个文件中。为此,我安装了 grunt-jekyll。之后我在 grunt/config/compile/ 中创建了一个简单的配置文件并添加了以下内容:
// Configuration for jekyll task(s)
// Compiles the blog
'use strict';
var taskConfig = function(grunt) {
grunt.config.set('jekyll', {
options: { // Universal options
bundleExec: true,
src : '<%= jekyll %>'
},
dist: { // Target
options: { // Target options
dest: '<%= dist %>/blog',
config: '_config.yml,_config.build.yml'
}
}
});
};
module.exports = taskConfig;
创建此文件后,我通过 运行 "grunt build" 测试了 grunt 是否仍在工作,结果证明没有。我收到以下错误:
Running "useminPrepare:html" (useminPrepare) task
Going through dist/index.html to update the config
Looking for build script HTML comment blocks
Fatal error: Maximum call stack size exceeded
我不知道为什么会出现这个错误,因为我没有告诉 grunt 使用 jekyll 做任何事情(除了加载它),所以我不希望有任何改变。删除文件使我的 grunt 设置功能正常运行。
将 jekyll:dist 添加到 grunt/tasks/build.js 会导致类似的错误,但在正确的模块中:
Running "jekyll:dist" (jekyll) task
Warning: Maximum call stack size exceeded Use --force to continue.
我不知道它是否有帮助,但这里有一些关于我的设置的额外信息:
- 节点 v0.12.2
- 咕噜声:v0.4.5
- grunt-cli: v0.1.13
- 使用:jade,sass,仪表板
- grunt 文件:https://gist.github.com/Boelensman1/95bb3ec7298377c8c4c9
- package.json: https://gist.github.com/Boelensman1/1f0c97a7d7720f9e2be4
- .yo-rc.json: https://gist.github.com/Boelensman1/cef88cb2cb925faa355d
- build.js: https://gist.github.com/Boelensman1/5f55c251648b881e3f2d
我想我在我的 jekyll 配置文件中犯了一个错误,但我看不到哪里。如果有人能帮助我,将不胜感激。
我不知道为什么会导致堆栈溢出,但问题是 <%= dist %> 和 <%= jekyll %> 是错误的。它应该是 <%= yeogurt.jekyll %> 和 <%= yeogurt.dist %>。这是因为 yeogurt 是配置对象,请参阅 gruntfile 的第 20 行。
我使用 yeoman 酸奶生成器来启动我的项目。 生成的 grunt 文件使用(据我所知)include-all 和 grunt-jit 来加载模块。
我想做的是将 jekyll 的构建添加到这个文件中。为此,我安装了 grunt-jekyll。之后我在 grunt/config/compile/ 中创建了一个简单的配置文件并添加了以下内容:
// Configuration for jekyll task(s)
// Compiles the blog
'use strict';
var taskConfig = function(grunt) {
grunt.config.set('jekyll', {
options: { // Universal options
bundleExec: true,
src : '<%= jekyll %>'
},
dist: { // Target
options: { // Target options
dest: '<%= dist %>/blog',
config: '_config.yml,_config.build.yml'
}
}
});
};
module.exports = taskConfig;
创建此文件后,我通过 运行 "grunt build" 测试了 grunt 是否仍在工作,结果证明没有。我收到以下错误:
Running "useminPrepare:html" (useminPrepare) task
Going through dist/index.html to update the config
Looking for build script HTML comment blocks
Fatal error: Maximum call stack size exceeded
我不知道为什么会出现这个错误,因为我没有告诉 grunt 使用 jekyll 做任何事情(除了加载它),所以我不希望有任何改变。删除文件使我的 grunt 设置功能正常运行。
将 jekyll:dist 添加到 grunt/tasks/build.js 会导致类似的错误,但在正确的模块中:
Running "jekyll:dist" (jekyll) task
Warning: Maximum call stack size exceeded Use --force to continue.
我不知道它是否有帮助,但这里有一些关于我的设置的额外信息:
- 节点 v0.12.2
- 咕噜声:v0.4.5
- grunt-cli: v0.1.13
- 使用:jade,sass,仪表板
- grunt 文件:https://gist.github.com/Boelensman1/95bb3ec7298377c8c4c9
- package.json: https://gist.github.com/Boelensman1/1f0c97a7d7720f9e2be4
- .yo-rc.json: https://gist.github.com/Boelensman1/cef88cb2cb925faa355d
- build.js: https://gist.github.com/Boelensman1/5f55c251648b881e3f2d
我想我在我的 jekyll 配置文件中犯了一个错误,但我看不到哪里。如果有人能帮助我,将不胜感激。
我不知道为什么会导致堆栈溢出,但问题是 <%= dist %> 和 <%= jekyll %> 是错误的。它应该是 <%= yeogurt.jekyll %> 和 <%= yeogurt.dist %>。这是因为 yeogurt 是配置对象,请参阅 gruntfile 的第 20 行。