举一个简单的例子html
const path = require('path');
console.log(__dirname); //D:\myProgram\test
let myPath = path.join(__dirname,'/img/so'); //D:\myProgram\test\img\so
let myPath2 = path.join(__dirname,'./img/so'); //D:\myProgram\test\img\so
let myPath3 = path.resolve(__dirname,'/img/so'); //D:\img\so<br>
let myPath4 = path.resolve(__dirname,'./img/so'); //D:\myProgram\test\img\so
path.join()方法能够链接任意多个路径字符串。要链接的多个路径可作为参数传入。webpack
path.join()方法在接边路径的同时也会对路径进行规范化web
path.resolve()方法能够将多个路径解析为一个规范化的绝对路径。其处理方式相似于对这些路径逐一进行cd操做,与cd操做不一样的是,这引发路径能够是文件,而且可没必要实际存在(resolve()方法不会利用底层的文件系统判断路径是否存在,而只是进行路径字符串操做)。ui
resolve的详解能够参考:spa
https://www.cnblogs.com/zytt/p/9038598.htmlcode
1. 对于以/开始的路径片断,path.join只是简单的将该路径片断进行拼接,而path.resolve将以/开始的路径片断做为根目录,在此以前的路径将会被丢弃,就像是在terminal中使用cd命令同样。htm
path.join('/a', '/b') // 'a/b' path.resolve('/a', '/b') // '/b'
2. path.resolve老是返回一个以相对于当前的工做目录(working directory)的绝对路径。blog
path.join('./a', './b') // 'a/b' path.resolve('./a', './b') // '/Users/username/Projects/webpack-demo/a/b'