如何让gulp-jade添加' export'到生成的函数?

时间:2015-10-27 11:54:16

标签: javascript gulp pug

我使用Jade编写所有HTML,并将它们放在单独的文件中,包括一些微小的部分,这些部分将jQuery注入作为对事件的响应。这些位必须在客户端插入本地,所以我使用gulp-jade和client: true,然后尝试直接在Webpack中使用这些函数。

问题是我无法导入它们。我主要使用ES6(用babel-loader转换),但当然要求JS也能正常工作。

我目前解决这个问题的方法是永远不会自动运行gulp-jade,但只在我做出更改时手动运行它,然后手动添加' export'在文件的开头。

当然,这是有效的,但首先我永远不会记得在看到生成的错误之前运行gulp-jade,其次每当我运行gulp-jade时它会覆盖每个文件(即使是gulp-changed) )所以我必须添加' export'对所有人来说。

我对Gulp以外的Vinyl流没有经验,所以我不知道怎么做,但我知道我可能会运行类似stream =+ 'export ' + stream的东西,但是有一个更好的gulp-plugin识别源文件中的所有可导出元素,并根据选项根据ES6或RequireJS标准导出它们。

看起来这样的事情应该存在,全面有用,但我无法找到它!

它存在吗?在等待比我聪明的人创造它时,我可以使用一个简单的黑客吗?

1 个答案:

答案 0 :(得分:0)

这最终成为了解决方案,直接来自我的gulpfile:

gulp.task('jade: fix', ['jade: compile'], plugins.shell.task([
  'for file in *.js;do { printf \'export \'; cat $file; } >$file.new;mv $file.new $file;done'
], {cwd: process.cwd() + '/src/lib/nodes/templates'}));

plugins.shell.task = gulp-shell