我正在使用运行OSX 10.10.4的iMac并使用以下工具(以及其他工具)来创建演示网站。
haml v4.0.6, gulp v3.9, gulp-haml v0.1.5
我在开发网站的haml文件夹中的index.haml文件中有以下代码段
/ HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries
/[if lt IE 9]
%script(src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js")
%script(src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js")
当我从命令行直接运行haml命令时,它将生成以下html代码
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src='https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'></script>
<script src='https://oss.maxcdn.com/respond/1.4.2/respond.min.js'></script>
<![endif]-->
这正是我期待和得到的。但是,我在gulpfile.js文件中设置了以下任务
gulp.task('haml', function() {
gulp.src('haml/*.haml')
.pipe(haml())
.on('error', errorLog)
.pipe(gulp.dest('./'));
});
每当我使用上面的haml片段运行此任务时,我发生了一个巨大的崩溃,基本上说有一个“SyntaxError:Unexpected identifier”,后面跟着一个很长的堆栈跟踪,进入gulp-haml代码。
顺便说一下,gulpfile.js文件顶部附近的errorLog函数就是:
function errorLog(error) {
console.error.bind(error);
this.emit('end');
}
将上述haml代码从文件中删除并运行任务将创建html文件而不会出错。
我需要一些帮助。有什么我做错了,或者我正在使用的工具设置中有错误。
答案 0 :(得分:0)
我猜你的haml
CLI工具是基于Ruby的版本,而不是基于节点的版本(称为haml-js
)。 Node版本没有正确处理IE条件,is a known issue。
但这有效:
/ HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries
<!--[if lt IE 9]>
%script(src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js")
%script(src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js")
<![endif]-->