gulp生成图片的路径难道一旦确定就不能改变了?

陶中马 发布于 2015/11/22 12:36
阅读 2K+
收藏 0

软件工程师和算法工程师速来!正在直播:如何使用英特尔oneAPI工具实现PyTorch 优化>>>

第一次用gulp压缩图片club-pic时是生成在cover的img目录下,后来发现这图是公用的,就把生成路径改到了common目录下,并重命名为club01-pic,可是图片文件还是会生成到原来的路径之下。我看了下控制台,输出路径确实写的是common,不明白为什么会出现这个错误,望大神指导~~下面附上几张或许能够帮到你们的图~
加载中
0
frantic1048
frantic1048

给的图没到点上。

你的 src 目录结构是如何的,dist 目录结构是如何的?

theSrc 和 theDst 分别是什么(图里很难分辨)?

你希望 src 里面的什么位置的图生成到 dist 的里面的什么位置(图中有两个 common,无法分辨你描述的是哪一个)?

目录上的问题建议详细阅读 Gulp 关于目录部分的描述:https://github.com/gulpjs/gulp/blob/master/docs/API.md#optionsbase,应该对你有所帮助。

PS: imagemin 参数注释有错, progressive 是无损地把 jpg 格式转为能渐进加载的形式,不是压缩。

---

我模拟了你的操作,没有发生你描述的情况,问题还是很可能在于你传递的目录有点问题。顺便匹配目录应该用 **

gulpfile.js:


var gulp = require('gulp');
var imagemin = require('gulp-imagemin');

gulp.task('default', function (callback) {
  return gulp.src('src/**/*.jpg')
    .pipe(imagemin({
      progressive: true,
    }))
    .pipe(gulp.dest('dist'));
});


初始状态:


src
└── a
    └── t.jpg



执行一次 gulp 之后:


src                                                                                                  
└── a                                                                                                
    └── t.jpg                                                                                        
dist                                                                                                 
└── a                                                                                                
    └── t.jpg



src 中复制 t.jpg 到另一目录:


src
├── a
│   └── t.jpg
└── b
    └── t.jpg
dist
└── a
    └── t.jpg



执行一次 gulp:


src
├── a
│   └── t.jpg
└── b
    └── t.jpg
dist
├── a
│   └── t.jpg
└── b
    └── t.jpg



陶中马
可是我将输出路径打印出来,确实是我想要的,可是实际生成的文件却不在这个路径上~~类似的情况还有,就是用rev生成的json文件中记录的文件路径,十分诡异,令我摸不着头脑...我下边附个图说明下情况,感谢你~
陶中马
目前对这个问题的处理方式是,修改一下这张图片,比如svg图中多打个空格,jpg图尺寸弄大一点点,再次放进去后就可以正常地生成到指定路径。 感谢指正参数注释。
陶中马
感谢你多次抽空为我解答,文字表达上有点拙,在下方补上了一张图片,或许能够更加清楚地表达我的疑惑。感觉就好像是gulp记住了这个文件的目录位置,在下次操作时检测到同样的一个文件(即使它的复制的)就会生成到它上一次生成的那个目录中~
0
陶中马

如图所示,common文件夹和index文件夹都在others目录下,但从json文件中看到的则是,common在src目录下,index文件夹才是在others目录下。(这个或许跟我之前把common文件夹从src目录下移动到others目录下的操作有关)。

陶中马
说错了,在json文件中看到的是,common文件夹在mobile目录下,那么这个就跟我之前的操作无关了,mobile目录下一直都只有dist、html和src三个子目录~
0
陶中马
我试着把common和index这两个文件夹都移动到others的上一级目录(即src目录下),再一次执行gulp,从json文件显示的内容发现js和css文件的路径会跟着变化,而png和jpg文件的路径不会跟着变化(这个有需要的话可以截图)......这让我疑惑难道gulp能够记录下上次操作过的图片文件的相关信息?
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部