gulp.src() 没有读取所需的 JSON 文件的数组值
Posted
技术标签:
【中文标题】gulp.src() 没有读取所需的 JSON 文件的数组值【英文标题】:gulp.src() not reading required JSON file's array values 【发布时间】:2015-10-13 06:57:35 【问题描述】:我正在尝试让gulp.src()
从数组中流式传输文件,因此我可以使用 gulp-inject 将它们写入我的 index.html 文件。下面列出的是我的 gulp.config.json
文件,它将保存我的项目中包含的包的文件路径。
"vendorjs": [
"jquery/dist/jquery.min.js",
"angular/angular.js",
"ng-token-auth/dist/ng-token-auth.js",
"angular-bootstrap/ui-bootstrap-tpls.min.js",
"ngInfiniteScroll/build/ng-infinite-scroll.min.js",
"js/vendor/angular-ui-tour.js",
"spin.js/spin.js",
"angular-spinner/angular-spinner.min.js",
"angular-scroll/angular-scroll.js"
],
"js": [
"js/app.js",
"js/directives.js",
"js/services.js",
"js/filters.js"
]
出于调试目的,我的 gulpfile.js 看起来像这样Gulpfile.js
var gulp = require('gulp'),
inject = require('gulp-inject'),
paths = require('./gulp.config.json'),
debug = require('gulp-debug');
gulp.task('default', function()
gulp.src(paths.vendorjs).pipe(debug());
);
它似乎只输出到控制台:gulp-debug: js/vendor/angular-ui-tour.js
那是除非我像这样将paths.vendorjs
切换到paths.js
:gulp.src(paths.js).pipe(debug())
然后我得到 js 数组中每个文件的输出
gulp-debug: js/app.js
gulp-debug: js/directives.js
gulp-debug: js/services.js
gulp-debug: js/filters.js
有人能解释一下为什么会这样吗?
【问题讨论】:
【参考方案1】:很可能除了显示的文件之外的所有文件的路径都不正确,因此它们不会进入管道。您可以使用 gulp-expect-file 之类的东西来检查是否所有文件都已进入管道。
【讨论】:
那么数组中的路径实际上必须匹配项目中的文件?我的印象是这将是一个“路径退出”的情况,因为除了使用它们的名称之外,我实际上并没有对路径做任何事情。 是的,这些文件必须存在于那个位置,gulp 将获取这些文件并通过一系列转换运行它们,然后使用 gulp.dest 写入它们。如果文件不存在,则不会发生任何事情。 有没有办法让 gulp 忽略查找它们而只使用名称,还是我必须在我的所有文件路径中添加../../components/bower_components
?
它确实忽略了它们,它们没有发生任何事情。 gulp.src 旨在获取文件列表,它不能获取字符串列表。但是你想要完成什么?您使用 gulp 的主要目标是什么?以上是关于gulp.src() 没有读取所需的 JSON 文件的数组值的主要内容,如果未能解决你的问题,请参考以下文章