誰特么跟我說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