首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp useref正在抛出错误:“路径必须是字符串”

Gulp useref正在抛出错误:“路径必须是字符串”
EN

Stack Overflow用户
提问于 2014-04-28 20:44:30
回答 1查看 5.5K关注 0票数 1

我正在使用一个由约曼的gulp生成器生成的gulpfile.js,并由我对其稍作修改以满足我的需求。由于某些原因,当我试图运行构建过程(默认任务)时,我一直遇到一个问题。错误是在'html‘任务期间抛出的,大多数错误引用都在’`node_ most \gulp\index.js‘中。

以下是错误输出:

代码语言:javascript
复制
stream.js:94
    throw er; //Unhandled stream in pipe.

TypeError: path must be a string
    at Object.fs.openSync (fs.js:427:18)
    at Object.fs.readFileSync (fs.js:284:15)
    at Transform.<anonymous> (C:\dev\project\node_modules\gulp-useref\index.js:54:44)
    at Array.forEach (native)
    at Transform.<anonymous> (C:\dev\project\node_modules\gulp-useref\index.js:50:31)
    at Array.forEach (native)
    at Transform.<anonymous> (C:\dev\project\node_modules\gulp-useref\index.js:41:36)
    at Array.forEach (native)
    at Transform._transform (C:\dev\project\node_modules\gulp-useref\index.js:38:23)
    at Transform._read (C:\dev\project\node_modules\gulp-useref\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:184:10)
    at Transform._write (C:\dev\project\node_modules\gulp-useref\node_modules\through2\node_modules\readable-stream\lib\_stream_transform.js:172:12)

下面是HTML任务:

代码语言:javascript
复制
gulp.task('html', ['styles', 'scripts'], function () {
    var jsFilter = $.filter('**/*.js');
    var cssFilter = $.filter('**/*.css');

    return gulp.src(['app/**/*.html','app/**/*.php'])
        .pipe($.useref.assets())
        .pipe(jsFilter)
        .pipe($.uglify())
        .pipe(jsFilter.restore())
        .pipe(cssFilter)
        .pipe($.csso())
        .pipe(cssFilter.restore())
        .pipe($.useref.restore())
        .pipe($.useref())
        .pipe(gulp.dest('dist'))
        .pipe($.size());
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-29 00:00:12

简单回答:TypeError: path must be a string意味着链接/脚本路径存在问题。useref找不到您要指向的文件或目录。

较长的答覆:

我碰到了两个问题。

  1. 链接/脚本路径需要相对于gulpfile或者有一个要搜索的备用目录。

  1. yeoman使用多个alt目录,需要将它们放在花括号中,如下所示:

但是,如果您只有一个alt目录,并将其放在大括号中,它将引发一个错误。

这是因为它将路径读取为C:\path\to\project\{app}\styles\style.css。这在我看来是很奇怪的行为。我认为它将遍历大括号中列出的目录,而不考虑长度。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23350835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档