我使用Jade来编写所有的超文本标记语言,并将它们放在单独的文件中,包括一些被注入jQuery作为对事件的响应的小块文件。这些位必须在客户端插入本地变量,所以我在client: true中使用gulp-jade,然后尝试直接在Webpack中使用这些函数。
问题是我没有办法导入它们。我主要使用ES6 (用babel-loader转换),当然requireJS也一样好用。
我目前解决这个问题的方法是永远不会自动运行gulp-jade,而只是在我进行更改时手动运行它,然后在文件的开头手动添加“export”。
当然,这是有效的,但首先,在我看到生成的错误之前,我从来不记得运行gulp-jade,其次,每当我运行gulp-jade时,它都会覆盖每个文件(即使使用了gulp-changed),因此我必须向所有文件添加“export”。
我在Gulp之外没有使用Vinyl streams的经验,所以我不知道怎么做,但我知道我可以运行像stream =+ 'export ' + stream这样的东西,但是有一个gulp-plugin会更好,它可以识别源文件中所有可导出的元素,并根据ES6或RequireJS标准根据选项导出它们。
似乎这样的东西应该存在,到处都是有用的,但我找不到!
它存在吗?有没有一个简单的技巧可以让我在等待比我聪明的人创建它的时候使用?
发布于 2016-01-07 17:37:41
这就是解决方案,直接来自于我的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
https://stackoverflow.com/questions/33367343
复制相似问题