zoukankan      html  css  js  c++  java
  • node.js之path

      说到node.js,可能实际中用到node进行后台开发的公司不多,大部分人都没有开发后台的经验。但是也要了解node相关模块的用法,因为现在前端自动化脚本的构建,模块的打包越来越离不开node。特别是gulp或者webpack进行一些自动化操作的时候,node.js的重要性就体现出来了。说起来node毕竟是一个知识体系,所以想要几篇文章就描述清楚也是不可能的。本文就描述一下自动化构建中常用到的node的path模块。

      path是有关文件或文件夹的路径的模块,提供了获取文件路径,对路径进行转化,取得相对或者绝对路径等方法。具体如下:

      一、path.normalize(path) :标准化路径

    var path = require('path');
    /**
     * 标准化路径
     * */
    var url1 = path.normalize('d/fec///sd///dsds');
    var url2 = path.normalize('d/../..///ds');
    console.dir('url1:'+url1);//'url1:d/fec/sd/dsds'
    console.dir('url2:'+url2);//'url2:../ds'

      二、path.join([path1], [path2], [...]),合并路径

    /**
     * 合并路径
     * */
    var url3 = path.join('/a','b','a.text'),
        url4 = path.join('//','a','b');
    console.dir('url3:'+url3);//'url3:/a/b/a.text'
    console.dir('url4:'+url4);//'url4:/a/b'

      三、path.resolve(a, b)获取a到b的绝对路径

    /**
     * 获取a到b的绝对路径
     * 参数相当于执行路径转换的操作
     * */
    var url5 = path.resolve('E','b/a','../b/c','a.text'),
        url6 = path.resolve('C','../D/a','../../A','s/a.text');
    console.dir('url5:'+url5);//'url5:/Users/panqianjin/node/NodeCnpm/src/nodeApi/E/b/b/c/a.text'
    console.dir('url6:'+url6);//'url6:/Users/panqianjin/node/NodeCnpm/src/nodeApi/A/s/a.text'

      四、path.isAbsolute(path):是否为绝对路径

    /**
     * 是否为绝对路径
     * */
    var url7 = path.isAbsolute('/E/a'),
        url8 = path.isAbsolute('../c/a');
    console.dir('url7:'+url7);//'url7:true'
    console.dir('url8:'+url8);//'url8:false'

      五、path.relative(a, b):a到b的相对路径。a、b为绝对路径

    /**
     * 获取a到b的相对路径
     * 参数为绝对路径,是resolve的逆操作
     * */
    var url9 = path.relative('E:/a','C:/d/b'),
        url10 = path.relative('c/c/a','c/b');
    console.dir('url9:'+url9);//'url9:../../C:/d/b'
    console.dir('url10:'+url10);//'url10:../../b'

      六、path.dirname(path):返回路径中文件夹的路径

        path.basename(path):返回路径中的最后一部分,即dirname余下的部分

        path.extname(path):若存在返回文件的扩展名,否则为空

    /**
     * 返回路径中文件夹的路径
     * */
    var url11 = path.dirname('E:/a/C/d/b.text'),
        url12 = path.dirname('c/c/a/');
    console.dir('url11:'+url11);//'url11:E:/a/C/d'
    console.dir('url12:'+url12);//'url12:c/c'
    /**
     * 返回路径中的最后一部分,为dirname余下的部分
     * */
    var url13 = path.basename('E:/a/C/d/b.text'),
        url14 = path.basename('c/c/a/');
    console.dir('url13:'+url13);//'url13:b.text'
    console.dir('url14:'+url14);//'url14:a'
    /**
     * 若存在返回文件的扩展名,否则为空
     * */
    var url15 = path.extname('E:/a/C/d/b.text'),
        url16 = path.extname('c/c/a/');
    console.dir('url15:'+url15);//'url15:.text'
    console.dir('url16:'+url16);//'url16:'

      七、path.sep:对应平台下的文件夹分隔符

        path.delimiter:对应平台下的路径分隔符

    /**
     * 对应平台下的文件夹分隔符
     * mac下为/
     * */
    var url17 = path.sep,
        url18 = 'c/c/a/'.split(path.sep);
    console.dir('url17:'+url17);//'url17:/'
    console.dir('url18:'+url18);//'url18:c,c,a'
    /**
     * 对应平台下的路径分隔符
     * mac下为:
     * */
    var url17 = path.delimiter;
    console.dir('url17:'+url17);//'url17::''

      path模块基本api和用法就是这样了,掌握了这些,在使用gulp或webpack的时候会更有效率的。  

    如水穿石,厚积才可薄发
  • 相关阅读:
    A1023 Have Fun with Numbers [大整数乘法]
    大整数的四则运算
    A1096 Consecutive Factors [因子分解]
    A1078 Hashing [质数和散列结合]
    A1015 Reversible Primes [质数问题]
    又谈进制转换
    A1088 Rational Arithmetic [分数四则运算]
    A1081 Rational Sum [分数计算]
    linux主流系统配置静态ip
    主机ping虚拟机请求超时,虚拟机ping主机正常ping通导致ssh连接问题
  • 原文地址:https://www.cnblogs.com/pqjwyn/p/5823345.html
Copyright © 2011-2022 走看看