Nodejs:Path对象
模块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对象的更多相关文章
- Nodejs path对象
很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...
- NodeJS入门(四)—— path对象
很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...
- Path对象
Path是连续的Segment的集合,除了 Path 的第一个Segment和最后一个Segment外,其余的Segment的起始点都是前一个Segment的终止点,即Path对象的中的Segment ...
- Silverlight日记:字符串装换成Path对象
一,需要动态绑定Path <UserControl x:Class="Secom.Emx2.SL.Common.Controls.EleSafe.Ele.Line" xmln ...
- nodejs全局对象简析
Global:全局变量 定时器.控制台输出.事件 模块化相关的一些全局变量 path/url相关的一些全局变量 编码相关的 buffer:缓存(简单介绍) Process:进程(重点解析) 一.Glo ...
- nodejs 全局对象 global
nodejs中有一个全局对象 global,所有的全局变量都是global对象的属性,glabal最根本的作用是作为全局变量的宿主, 全局变量: 1 在最外层定义的变量 2 全局对象的属性 3 隐式定 ...
- nodejs以对象做对象的key导致value一直被覆盖
问题描述 在开发中,实现技能状态的事件监听功能时,将状态对象作为key,存入事件管理器的监听列表,如下图: 实现后,运行程序,并没有报错,但是当某个事件发生时,只有一个状态被触发监听,而大多数状态 ...
- NodeJs path.resolve的使用
__dirname __dirname 指向运行代码的文件夹 console.info('__dirname', __dirname) // C:\Leslie\Web_learning\Daily- ...
- Nodejs源代码分析之Path
今天介绍一下nodejs Path的源代码分析,Path的API文档在https://nodejs.org/dist/latest-v5.x/docs/api/path.html,使用相对简单,在AP ...
随机推荐
- nginx笔记资料
通配 hash 表 ngx_hash_init 实现注释:http://blog.csdn.net/gsnumen/article/details/7817396 ngx_hash_init之后的结构 ...
- poj2492_A Bug's Life_并查集
A Bug's Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 34947 Accepted: 11459 D ...
- HTML5 声明兼容IE的写法(转载)
HTML5 声明兼容IE的写法(转载) 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html> <!--[if IE]> <meta http-eq ...
- caffe下训练时遇到的一些问题汇总
1.报错:“db_lmdb.hpp:14] Check failed:mdb_status ==0(112 vs.0)磁盘空间不足.” 这问题是由于lmdb在windows下无法使用lmdb的库,所以 ...
- 仿qq联系人 学习笔记---ExpandableListActivity的使用
[转]原地址 http://blog.163.com/xygzx@126/blog/static/237809502011102010100331/ 效果显示图: 1.布局文件 main.xml(E ...
- setTimeout使用闭包功能,实现定时打印数值
我们这次使用setTimeout来实现一个按照时间定时,依次打印数值的例子.其实在早期的时候,也是我经常犯的一个错误,或者实现这种能力,似乎js比较牵强,其实是我的错,哈哈!没能理解JS强大之处.我们 ...
- Sublime text 3安装Emmet
这是Sublime text 3不是2的版本,两者的安装还是有区别的,下面的方法是我感觉比较简单的,其他的要命令什么的感觉太复杂了,经测试是OK的. 先关闭Sublime text 3: 第一步:下载 ...
- 为什么kafka使用磁盘而不是内存
Kafka最核心的思想是使用磁盘,而不是使用内存,可能所有人都会认为,内存的速度一定比磁盘快,我也不例外.在看了Kafka的设计思想,查阅了相应资料再加上自己的测试后,发现磁盘的顺序读写速度和内存持平 ...
- php+mysql+smarty+oop
php+mysql+smarty+oop 设计新闻系统简单的UML模 powerdesigner和diagram designer 设计所需环境.模块.模板样式 数据库uml设计和创建数据库结构 db ...
- centos yum安装saltstack
1.导入安装源 centos5 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm cen ...