javascript - Gulp 任务完成且没有错误,但没有文件保存到目标

标签 javascript node.js gulp vinyl

我陷入了一个小问题,无法解决它。

这是场景:

我正在使用 Gulp Task 使用 gulp-html2js 将我的 html 模板转换为 javascript 我的环境是 Node v6.9.1 ,gulp 3.9.1,Windows 7

这是 gulpfile.js

var gulp = require('gulp');
var concat = require('gulp-concat');
var html2js = require('gulp-html2js');
var sourceDir = "D:\Programs_Insalled\nodejs\nodeapps\myApp"

gulp.task('templates', function() {
  return gulp.src( 'D:\Programs_Insalled\nodejs\nodeapps\myApp\templates\*.html').
   pipe(html2js({outputModuleName: 'templates'})).
   pipe(concat('templates.js')).
   pipe(gulp.dest('D:\Programs_Insalled\nodejs\nodeapps\myApp\bin'));
});

当我运行任务时,它会在几毫秒内完成,但 templates.js 不会在 bin 目录中生成

D:\Programs_Insalled\nodejs\nodeapps\myApp>gulp templates
[15:28:45] Using gulpfile D:\Programs_Insalled\nodejs\nodeapps\myApp\gulpfile.js
[15:28:45] Starting 'templates'...
[15:28:45] Finished 'templates' after 19 ms

我已经在 GitHub 和 stackoverflow 上列出的类似项目中尝试了以下建议,但没有成功,

https://github.com/yeoman/generator-webapp/issues/182
https://github.com/yeoman/generator-webapp/issues/225

有人可以帮我找出我的错误吗?

谢谢。

编辑提供示例的输出:

D:\Programs_Insalled\nodejs\nodeapps\myApp>gulp models
[17:13:10] Using gulpfile  D:\Programs_Insalled\nodejs\nodeapps\myApp\gulpfile.js
[17:13:10] Starting 'models'...
[17:13:10] Finished 'models' after 21 ms

D:\Programs_Insalled\nodejs\nodeapps\myApp>gulp templates
[17:13:13] Using gulpfile D:\Programs_Insalled\nodejs\nodeapps\myApp\gulpfile.js
[17:13:13] Starting 'templates'...
D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\vinyl\index.js:120
    if (!this.path) throw new Error('No path specified! Can not get relative.');
                    ^

Error: No path specified! Can not get relative.
    at File.get (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\vinyl\index.js:120:27)
    at DestroyableTransform.bufferContents [as _transform] (D:\Programs_Insalled\nodejs\nodeapps\myA
pp\node_modules\gulp-concat\index.js:70:20)
    at DestroyableTransform.Transform._read (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules
\gulp-concat\node_modules\readable-stream\lib\_stream_transform.js:184:10)
    at DestroyableTransform.Transform._write (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_module
s\gulp-concat\node_modules\readable-stream\lib\_stream_transform.js:172:12)
    at doWrite (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\gulp-concat\node_modules\rea
dable-stream\lib\_stream_writable.js:237:10)
    at writeOrBuffer (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\gulp-concat\node_modul
es\readable-stream\lib\_stream_writable.js:227:5)
    at DestroyableTransform.Writable.write (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\
gulp-concat\node_modules\readable-stream\lib\_stream_writable.js:194:11)
    at DestroyableTransform.ondata (D:\Programs_Insalled\nodejs\nodeapps\myApp\node_modules\through2
\node_modules\readable-stream\lib\_stream_readable.js:531:20)
    at emitOne (events.js:96:13)
    at DestroyableTransform.emit (events.js:188:7)

D:\Programs_Insalled\nodejs\nodeapps\myApp>

最佳答案

。因为管道在管道之前更好,我给你一个例如我的gulpile之一,你不需要将绝对机器路径放在dest中你的gulpfile是任务的根路径gulp与js一起工作使用js路径试试这个 从来没有使用 html2js 我不知道你的语法是否正确,但首先尝试使用这个路径

我的例子

 gulp.task('models', function(){
        return gulp.src('models/*.*')
        .pipe(gulp.dest('../dist/models'))
    });

为你尝试一下

gulp.task('templates', function() {
  return gulp.src( 'templates/*.html')
   .pipe(html2js({outputModuleName: 'templates'}))
   .pipe(concat('templates.js'))
   .pipe(gulp.dest('bin'))
});

关于javascript - Gulp 任务完成且没有错误,但没有文件保存到目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40484940/

相关文章:

javascript - ReferenceError : require is not defined in ES module scope, 你可以使用 import 代替 gulp sass

javascript - 使用 mocha/chai 进行测试时收到 UnhandledPromiseRejectionWarning

javascript - 这里发生了什么 global[{a}]=7

linux - 无法在nodejs中执行git命令

node.js - Mongoose,无法从数据库打印产品

javascript - 如何重定向基于 "internal state"的流

node.js - gulp.dest() 忽略子目录

javascript - 如何在 JavaScript 中选择和迭代共享一个 CSS 类的单个 <div> 的子元素?

javascript - 将鼠标悬停在输入的背景颜色上并删除禁用的红色圆圈?

JavaScript 选项斜体部分