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 ...
随机推荐
- [转]MySQL 最基本的SQL语法/语句
MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下. DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...
- Servlet 之 GenericServlet
我们都知道javaweb中servlet的三大组件 servlet filter listener 实现动态资源的 是可以继承 Servlet接口,或者集成GenericServlet .Http ...
- 为什么operator>>(istream&, string&)能够安全地读入长度未知的字符串?
一般而言,实现"读入用户输入的字符串",程序中自然不能对用户输入的长度有所限定.这在C++中很容易实现,而在C中确没那么容易. 这一疑问,我在刚学C++的时候也在脑中闪现过:不过很 ...
- Python~切片Slice
[:] [:10] [-10:] [':10:2]
- DIV+CSS 清除浮动方法总结
DIV+CSS 清除浮动是页面布局中常见的问题,相信各位高手也都有自己的方法,今天在这里对常见的几种方法进行总结(PS:谈不上是原创,这里是我自己做的归纳总结,也是我自己内化的过程),希望对您能够有所 ...
- HTML5本地缓存数据
//HTML5本地缓存数据 function putObj(key, data) { if (!!window.localStorage) { var obj = { "key": ...
- PHP基础之POST与GET
post 与 get区别 *.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示.*.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1 ...
- 【MongoDB】 Windows 安装
Windows下安装MongoDB,虽然网上有很多攻略,但是还是有很多坑,为了以后少犯错误,特此记录. 1.下载安装包 https://fastdl.mongodb.org/win32/mongodb ...
- 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现
#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...
- ftp下载在谷歌与火狐不同
今天ftp点击下载按钮的时候火狐可以谷歌不行,上网查了一下网友提供两种方法确实可用记录如下 1.把"ftp"开头的网址修改为”http"开头的网址,即可顺利访问2.直接保 ...