nodejs vinyl-fs 处理文件时输入问题

简介: 使用 nodejs vinyl-fs 复制文件时输出路径不对,还是会有原来的相对路径,原因是用了反斜杠“\”,正斜杠“/”没问题测试过程node版本: v9.3.0系统:win10步骤:得到两个不同路径先测试路径p1,p1是反斜杠,将文件输出到test文件夹,结果是多了“bower_components\animate.

使用 nodejs vinyl-fs 复制文件时输出路径不对,还是会有原来的相对路径,原因是用了反斜杠“\”,正斜杠“/”没问题

测试过程

node版本: v9.3.0

系统:win10

步骤:

得到两个不同路径

先测试路径p1,p1是反斜杠,将文件输出到test文件夹,结果是多了“bower_components\animate.css”这个相对路径

下面是路径p2,p2是正斜杠,正常输出

代码

1 var glob = require("glob")
2 var path =require("path")
3 var vfs = require('vinyl-fs')
4 
5 var p1=path.join("./","/bower_components/animate.css/animate.css")
6 var p2="bower_components/animate.css/animate.css"
7 
8 vfs.src(p1).pipe(vfs.dest("test"))
9 vfs.src(p2).pipe(vfs.dest("test"))
View Code

总结

正反斜杠可能会出现的情况:一般来说,我手动写的路径都是用正斜杠“/”,有时候为了方便拼接路径会使用 path类库 相关函数,一般在windows上跑出来的结果是反斜杠,平时在win的文件管理地址栏复制出来的地址也是反斜杠,C#

的 path类库处理的结果也有反斜杠。

统一的做法:在一个路径同时含有正反斜杠的时候,要看使用者挑不挑格式,如果没要求那就随意,有要求的话还是在处理下,把反斜杠换成正斜杠,避免未知的问题出现。也不深究了,反正用正斜杠就没错了。

有关资料:

nodejs文档 path相关 https://nodejs.org/dist/latest-v9.x/docs/api/path.html

glob表达式  https://www.npmjs.com/package/glob

glob文档里有的说到(其实我只是想简单的玩一下,文档都没看过,谁知道有这坑):在windows平台,glob表达式请只使用正斜杠。但是我相信,依然还有很多人没看过,也不知道,大都是复制粘贴,结果可能会在本就出了小问题的项目上再添一个,然后bug连环。讲到这里我不得不吐槽一下grunt的一些插件,文档几乎没用,文档里指向其它文档的链接也没有,出了问题也难调试,浪费了好多时间。后来就用gulp了,稍微好点,看官网感觉插件质量普遍好点,性能也比grunt好。这些插件实在是让人头疼,用吧又有各种小问题,自己写吧又要费时间还不一定写的比人家好,后来又发现 npm scripts。都是基于nodejs,非得搞各种乱七八糟的格式,文档有没有统一规范,插件质量参差不齐。对于初学者来说,学习成本不是一般的高。为什么非得要使用者掌握那么多基础才能正常使用呢,就像买回来电脑还要去学习它的运行原理,装系统等等才能使用,我只是想看片而已啊。

难得写点东西,再唠嗑唠嗑。这两天了解了以前只知道概念却没用过的npm和bower包管理,从感叹竟然有grunt这么神奇的东西,到抛掉它使用gulp,再到回到 npm scripts,怎么说呢,像是回归到原始了。不就都是js吗,还搞各种乱七八糟的,我仅仅只是要脚本复制文件,结果几行代码就自己搞定的事情,我硬是从grunt、到gulp 和 npm scripts逛了一圈,那我还不如直接用t4模板,用自己能掌控的熟悉的语言来减轻自己的工作。本来各种辅助工具就是减轻各种重复厌烦的工作的,结果到头来是增加了学习成本还不一定能把事干好。如果造轮子的成本比学习其他轮子的成本低,那干嘛不自己造轮子,而且自己实践的东西学的更加深刻。无论怎么样,还是要感谢各位大佬造的这么多好用牛逼的东西,最后希望国内能再多一些各种牛逼的技术,技术全面向前发展。

用心做好每一件事,结果会给你最大的惊喜!
目录
相关文章
|
4月前
|
JavaScript API
深入探索fs.WriteStream:Node.js文件写入流的全面解析
深入探索fs.WriteStream:Node.js文件写入流的全面解析
|
7月前
|
JSON JavaScript 数据格式
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
Node.js实现服务器端生成Excel文件(xls格式、xlsx格式文件)并弹出下载文件
|
7月前
|
JavaScript 前端开发
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
nodejs实现解析chm文件列表,无需转换为PDF文件格式,在线预览chm文件以及目录,不依赖任何网页端插件
|
7月前
|
JSON JavaScript API
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)
|
Windows
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
ts-node : 无法加载文件 C:\Users\Dell\AppData\Roaming\npm\ts-node.ps1,因为在此系统上禁止运行脚本。有关详细信息
269 0
|
3月前
|
存储 JSON JavaScript
学习node.js十三,文件的上传于下载
学习node.js十三,文件的上传于下载
|
4月前
|
JavaScript
NodeJs——如何下载文件
NodeJs——如何下载文件
87 4
|
4月前
|
机器学习/深度学习 JavaScript
node.js实现遍历所有文件夹里面的js文件,提取所有的url
node.js实现遍历所有文件夹里面的js文件,提取所有的url
|
4月前
|
资源调度 前端开发 JavaScript
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
前端 nodejs 命令行自动调用编译 inno setup 的.iss文件
|
7月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
129 0