模块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. Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

    首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Wind ...

  2. 去掉input框点击时的默认颜色

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...

  3. Python爬虫Scrapy框架入门(0)

    想学习爬虫,又想了解python语言,有个python高手推荐我看看scrapy. scrapy是一个python爬虫框架,据说很灵活,网上介绍该框架的信息很多,此处不再赘述.专心记录我自己遇到的问题 ...

  4. Struts2学习(一)

    struts2 就是 web层开发框架,符合MVC模式 入门程序 创建web工程 导入jar包 下载struts2的jar包  struts-2.3.15.1-all 版本. 注意:在struts2开 ...

  5. Google之Chromium浏览器源码学习——base公共通用库(二)

    上次提到Chromium浏览器中base公共通用库中的内存分配器allocator,其中用到了三方库tcmalloc.jemalloc:对于这两个内存分配器,个人建议,对于内存,最好是自己维护内存池: ...

  6. [译]:Orchard入门——导航与菜单

    原文链接:Navigation and Menus 文章内容基于Orchard1.8版本.同时包含Orchard 1.5之前版本的导航参考 Orchard有许多不同的方法来创建菜单.本文将介绍两种较为 ...

  7. SourceTree安装教程和GitLab配置详解

    一.安装Git 链接: http://pan.baidu.com/s/1mh7rICK 密码: 48dj 二.安装SourceTree 链接: http://pan.baidu.com/s/1skWk ...

  8. JAVA Day10

      使用继承 编写继承: class Engineer{ //公共的属性和方法 }   编写子类,继承父类, class SoftEnineer extends Enginerr{ //子类持有的属性 ...

  9. GeoJSON格式规范说明

    GeoJSON格式规范说明 1.简介 GeoJSON是一种对各种地理数据结构进行编码的格式.GeoJSON对象可以表示几何.特征或者特征集合.GeoJSON支持下面几何类型:点.线.面.多点.多线.多 ...

  10. Android之菜单总结

    在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 1. 选项菜单(OptionsMenu)详解 Activi ...