path.resolve,path.join究竟是什么鬼?

谁特么跟我说Unix系统是"/",Windows系统是""


对不起大哥,我看错api~不要在resolve写反斜杠。。。会报错,可以在join那里写


测试结果
// webpack.config.js
var path = require('path');
module.exports = {
    entry: './main.js',
    output: {
        filename: 'bundle.js'
    }
}
console.log("------__dirname是补齐当前目录的路径,第二个参数是..,就是返回上一层,到了myseft-demos,第三参数是to 位置,resolve这个方法是将前面的from路径最终拼到to位置生成绝对路径-------");
console.log("--------------------总结:不管你有没有这个文件夹或文件,你写出来了就给你拼------------------------");
console.log("__dirname,'..','c.txt'*******",path.resolve(__dirname,'..','c.txt'));
console.log("__dirname,'..','/e','c.txt'*******",path.resolve(__dirname,'..','/e','c.txt'));
console.log("__dirname,'u','e','c.txt'*******",path.resolve(__dirname,'u','e','q.txt','\n'));

console.log("--------------------一碰到/开头的就会以它为绝对路径开头------------------------");
console.log("????     ",path.resolve('/foo/bar', '/tmp/file/'));
console.log("????     ",path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif','\n'));

console.log("--------------------下面是阴差阳错把字符串放到resolve API里去了,发现新大陆,join不管三七二十一直接拼,resolve有自己的一套原则,------------------------");
console.log(path.resolve("__dirname,'..','c.txt'*******",__dirname,'..','c.txt'));
console.log(path.resolve("__dirname,'..','/e','c.txt'*******",__dirname,'..','/e','c.txt'));
console.log(path.resolve("__dirname,'u','e','c.txt'*******",__dirname,'u','e','c.txt','\n'));

console.log("-------  Unix系统是 /,Windows系统是 \  ,我就是想尝试一下,发现一个翻斜杠是不行的,会转义的!加多一个 \ 安全一点 --------");
console.log(path.join("__dirname,'..','\\b','d.txt'*******",__dirname,'..','\\b','\d.txt'));
console.log(path.join("__dirname,'..','\b','d.txt'*******",__dirname,'..','\b','\d.txt'));
console.log(path.join("__dirname,'..','/b','d.txt'*******",__dirname,'..','/b','/d.txt'));
console.log(path.join("__dirname,'a','b','c.txt'*******",__dirname,'a','b','c.txt'));
console.log(path.join("__dirname,'..','b','\\e','c.txt'*******",__dirname,'..','b','\\e','c.txt'));
console.log(path.join("__dirname,'..','b','\\e','\c.txt'*******",__dirname,'..','b','\\e','\c.txt'));

emmmmmm...
我想我理解错这句话了

path.join([path1][, path2][, ...])
用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是""。

他说的是输出结果~~~~


以上内容参考下面文章
Path模块 来自《JavaScript 标准参考教程(alpha)》,by 阮一峰
node path.resolve() 作者:尼古拉斯-托尔斯泰-赵四


下面文章验证上面结果
path的join和resolve 作者:last_edc

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.连接路径:path.join([path1][, path2][, ...]) path.join()方法可以...
    last_edc阅读 12,580评论 2 20
  • 最近项目中要实现加速球效果。是时候该学习一波了,好了废话不多说,记笔记,还是从自己发憷的自定义view开始。 先来...
    laifrog阅读 1,517评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • Pythos中调用操作系统的模块,提供对操作系统进行调用的接口 API方法 os.getcwd() 获取当前工作目...
    So_ProbuING阅读 2,304评论 0 4
  • 十年没有逃脱锅碗瓢盆的磕磕碰碰,没有摆脱成长的摔打和历练,没有留住青春的貌美年华,留下来的是一串串耐人寻味的故事,...
    骁玉儿阅读 830评论 3 2