模块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对象的更多相关文章

  1. Nodejs path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  2. NodeJS入门(四)—— path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  3. Path对象

    Path是连续的Segment的集合,除了 Path 的第一个Segment和最后一个Segment外,其余的Segment的起始点都是前一个Segment的终止点,即Path对象的中的Segment ...

  4. Silverlight日记:字符串装换成Path对象

    一,需要动态绑定Path <UserControl x:Class="Secom.Emx2.SL.Common.Controls.EleSafe.Ele.Line" xmln ...

  5. nodejs全局对象简析

    Global:全局变量 定时器.控制台输出.事件 模块化相关的一些全局变量 path/url相关的一些全局变量 编码相关的 buffer:缓存(简单介绍) Process:进程(重点解析) 一.Glo ...

  6. nodejs 全局对象 global

    nodejs中有一个全局对象 global,所有的全局变量都是global对象的属性,glabal最根本的作用是作为全局变量的宿主, 全局变量: 1 在最外层定义的变量 2 全局对象的属性 3 隐式定 ...

  7. nodejs以对象做对象的key导致value一直被覆盖

      问题描述 在开发中,实现技能状态的事件监听功能时,将状态对象作为key,存入事件管理器的监听列表,如下图: 实现后,运行程序,并没有报错,但是当某个事件发生时,只有一个状态被触发监听,而大多数状态 ...

  8. NodeJs path.resolve的使用

    __dirname __dirname 指向运行代码的文件夹 console.info('__dirname', __dirname) // C:\Leslie\Web_learning\Daily- ...

  9. Nodejs源代码分析之Path

    今天介绍一下nodejs Path的源代码分析,Path的API文档在https://nodejs.org/dist/latest-v5.x/docs/api/path.html,使用相对简单,在AP ...

随机推荐

  1. kali2.0中dradis的使用方法

    启动脚本位于:/usr/lib/dradis下,再该目录下有一个start.sh文件,执行后,可以在浏览器中输入https://localhost:3004即可打开dradis的web接口 切记前面h ...

  2. sqlserver2000 数据库 'tempdb' 的日志已满

    方法一解决过程: 查看了下数据库的属性,是自动增长,不指定文件大小上限.在网上Google了很久,试了些方法都不行:数据库所在磁盘还有很大的可用空间,试着下重药了.直接把tempdb的数据文件和日志文 ...

  3. Pyqt 控件的信号槽事件定义方法

    转载来自:http://my.oschina.net/midnite/blog/39399 Qt采用信号槽来设定UI界面上元素动作的事件绑定.自Qt4.5开始,引入了一个新的信号槽与事件绑定的方法.界 ...

  4. AngularJS中bootstrap启动

    对于一般的使用者来说,AngularJS的ng-app都是手动绑定到某个dom元素.但是在一些应用中,这样就显得很不方便了 绑定初始化 通过绑定来进行angular的初始化,会把js代码侵入到html ...

  5. thinkphp设置session有效时间

    thinkphp的框架文件 ThinkPHP/Common/functions.php function session(){ 在这个方法中找到 thinkphp .1版 if(isset($name ...

  6. Leetcode: Surrounded regions

    Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A region is captured ...

  7. hdu 4717(三分求极值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...

  8. EventBus 一

    一.概述 EventBus是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间 ...

  9. C# 类动态添加属性、方法

    问题: 需要动态为WPF中的DataGrid添加列,并动态绑定相应数据.(此处仅实现动态属性的添加和使用,关于动态方法的添加和使用详见推荐阅读) 实现关键点: 目标类继承DynamicObject,添 ...

  10. Ubuntu下使用vsftpd实现FTP

    ## 哈哈哈啊哈 被领导啪啪啪打脸,文件连在线打开都不行,你做事情的时候有没有考虑过别人使用时的感受!! 需求: 部门老大希望在内网搭建一个用于员工共享文件的系统. 很自然的就想到通过FTP去实现. ...