標籤:public ext build vendor join nod /tmp 檔案夾 color
模組Path:
path.normalize(url)
path.join(url1, url2, ..)
path.resolve(url1, url2, ..)
path.relative(url1, url2)
path.dirname(url)
path.basename(url)
path.extname(url)
TIPS:
以上是Path對象的API,調用方便簡潔,一般在項目中我會先寫一個頂級目錄
var publicDir = path.resolve(__dirname, ‘./src‘)
其餘的子目錄在此頂級目錄衍生
var pagesDir = path.resolve(publicDir, ‘./pages‘)var staticDir = path.resolve(publicDir, ‘.static‘)var buildDir = path.resolve(publicDir, ‘./build‘)var vendorDir = path.resolve(publicDir, ‘./vendor‘)
最後把對象掛載出去,其他檔案需要使用到路徑的,直接引入就可以了
module.exports = { pagesDir: path.resolve(publicDir, ‘./pages‘) staticDir: path.resolve(publicDir, ‘.static‘) buildDir: path.resolve(publicDir, ‘./build‘) vendorDir: path.resolve(publicDir, ‘./vendor‘)}
API範例:
var path = require(‘path‘);/* * 格式化路徑:../返回上一級,所以結果為 * -->‘/foo/bar/baz/asdf‘ */path.normalize(‘/foo/bar//baz/asdf/quux/..‘);/* * 拼接路徑:拼接完成後調用normalize(),結果同上 * -->‘/foo/bar/baz/asdf‘ */path.join(‘///foo‘, ‘bar‘, ‘//baz/asdf‘, ‘quux‘, ‘..‘);/* * 路徑導航:等於cd一遍每個子路徑 */path.resolve(‘foo/bar‘, ‘/tmp/file/‘, ‘..‘, ‘a/../subfile‘)/* * 相對路徑:b相對於a的路徑為:‘../../impl/bbb‘,在a的路徑上結果就可以訪問到b檔案 * -->‘../../impl/bbb‘ */path.relative(‘/data/orandea/test/aaa‘, ‘/data/orandea/impl/bbb‘)/* * 檔案夾名稱:檔案夾所在路徑的名稱 * -->‘/foo/bar/baz/asdf‘ */path.dirname(‘/foo/bar/baz/asdf/quux‘) /* * 檔案路徑:返回指定的檔案名稱,可排除尾碼名 * -->‘quux‘ */path.basename(‘/foo/bar/baz/asdf/quux.html‘, ‘.html‘)/* * 拓展名:返迴文件拓展名 */path.extname(‘index.html‘) // ‘.html‘path.extname(‘index.‘) // ‘.‘path.extname(‘index‘) // ‘‘module.exports = { entry: [], output:{ path: buildDir, filename: ‘[name]/entry.js‘ }};
Nodejs:Path對象