Skip to content

path

[TOC]

索引

方法

  • path.dirname()(p),获取文件目录
  • path.basename()(p, extension?),获取文件名
  • path.extname()(p),获取文件扩展名
  • path.join()(...paths?),用于将多个路径片段拼接成一个完整的路径(解析./../)。
  • path.resolve()(...paths?),将多个路径拼接(解析./../),返回一个绝对路径。

path

方法

dirname()

path.dirname()(p),获取文件目录

  • pstring,路径字符串

    • 文件路径字符串:返回该文件所在的目录部分
    • 目录路径字符串:返回该目录的上一级目录
  • 返回:

  • dirstring,返回该路径的目录部分

  • js
    const path = require('path')
    
    console.log(path.dirname('/Users/johndoe/Documents/file.txt')) // /Users/johndoe/Documents
    
    console.log(path.dirname('/Users/johndoe/Documents/')) // /Users/johndoe

basename()

path.basename()(p, extension?),获取文件名

  • pstring,要获取文件名的路径字符串。

  • extension?string,指定要排除的文件扩展名。

  • 返回:

  • filenamestring,返回文件名。

  • js
    const path = require('path')
    
    const filename = path.basename('/Users/johndoe/Documents/file.txt') // file.txt
    
    const filename = path.basename('/Users/johndoe/Documents/file.txt', '.txt') // file

extname()

path.extname()(p),获取文件扩展名

  • pstring,要获取文件扩展名的路径字符串

  • 返回:

  • extensionstring,返回文件扩展名

  • js
    const path = require('path')
    
    path.extname('/Users/johndoe/Documents/file.txt') // .txt
    
    path.extname('/Users/johndoe/Documents/file') // ''
    
    path.extname('/Users/johndoe/Documents/') // ''

join()

path.join()(...paths?),用于将多个路径片段拼接成一个完整的路径(解析./../)。

  • ...paths?string,要拼接的路径片段。

  • 返回:

  • joinedPathstring,返回拼接完成的路径。

  • 注意

    • join()可以兼容不同操作系统的分隔符。
    • join()可以解析./../
  • js
    const path = require('path')
    
    path.join('/path', 'to', 'directory') // /path/to/directory
    // 注意:此处和resolve不同
    path.join('/path/', '/to/', '/directory/') // /path/to/directory
    
    path.join('/path', '../relative') // /relative

resolve()

path.resolve()(...paths?),将多个路径拼接(解析./../),返回一个绝对路径。

  • ...paths?string,要解析的路径片段。

  • 返回:

  • resolvedPathstring,返回解析完成的绝对路径。

  • 注意

    • 拼接顺序从右到左,依次解析 path,直到构成一个绝对路径。若始终没有形成绝对路径,则继续拼接当前工作目录。
    • 返回的路径会去除尾部的/
    • 不传参数,返回当前目录
    • resolve()可以解析./../
  • js
    const path = require('path');
    
    path.resolve('/path', 'to', 'directory')) // /path/to/directory
    
    path.resolve('/path/', '/to/', '/directory/') // /directory
    
    path.resolve('/path', '../relative') // /relative
    
    path.resolve('abc.txt') // /Users/04_learn_node/06_常见的内置模块/02_文件路径/abc.txt
  • js
    // 应用:在 webpack 中使用 resolve()
    const CracoLessPlugin = require('craco-less')
    const path = require('path')
    
    const resolve = (dir) => path.resolve(__dirname, dir)
    
    module.exports = {
      plugins: [
        {
          plugin: CracoLessPlugin,
          options: {
            lessLoaderOptions: {
              lessOptions: {
                modifyVars: { '@primary-color': '#1DA57A' },
                javascriptEnabled: true
              }
            }
          }
        }
      ],
      webpack: {
        alias: {
          '@': resolve('src'),
          components: resolve('src/components')
        }
      }
    }