We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
虽然我不写node.js,但是总能在各种配置文件(gulpfile.js/webpack.config.js)中看到这段代码,还有好多配置工具的例子中也总是用到它,所以让我们来一起解读一下这段代码中蕴含的所有知识点吧
var path = require('path');
首先所有用到这段代码的文件都是node.js的一个模块文件 Node应用由模块组成,采用CommonJS模块规范,path就是其中的一个应用模块,path模块提供了一些用于处理文件路径的小工具 内置的require命令用于加载模块文件 require命令的基本功能是,读入并执行一个JavaScript文件,然后返回该模块的exports对象 require命令用于加载文件,后缀名默认为.js
//等同于
var path = require('path.js');
根据参数的不同格式,require命令去不同路径寻找模块文件 怎么样没想到吧,一行代码里面竟然蕴含着这么多信息和知识,所以path是node中node_modules目录的已安装模块,在我们的文件中可以按照上述方式加载使用path对外暴露的接口
path中一些常用的方法总结
1.path.basename(path[, ext])
获取路径中文件名,后缀是可选的,如果加请使用'.xxx'方式来匹配,则返回值中不包括后缀名;
path.basename('/foo/bar/baz/asdf/quux.html') // Returns: 'quux.html' path.basename('/foo/bar/baz/asdf/quux.html', '.html') // Returns: 'quux'
2.path.delimiter 返回操作系统中目录分隔符,如window是';', Unix,linux,mac os中是':',下面举一个POSIX(除了Windows统称)的例子
console.log(process.env.PATH) // Prints: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin' process.env.PATH.split(path.delimiter) // Returns: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']
3.path.dirname(path) 获取路径中目录名
var myPath = path.dirname(__dirname + '/test/util/you.mp3'); console.log(myPath); //Users/cayley/Documents/webpack-demo/test/util
__dirname是node.js中的一个全局变量,用来获取当前模块文件所在目录的完整绝对路径
4.path.extname(path) 获取路径中的扩展名,如果没有'.',则返回空
path.extname('index.html') // Returns: '.html' path.extname('index.coffee.md') // Returns: '.md' path.extname('index.') // Returns: '.' path.extname('index') // Returns: '' path.extname('.index') // Returns: ''
5.path.join([...paths]) 路径结合、合并,路径最后不会带目录分隔符
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..') // Returns: '/foo/bar/baz/asdf' path.join('foo', {}, 'bar') // throws TypeError: Arguments to path.join must be strings
6.path.normalize(path) 路径解析,得到规范化的路径格式,对window系统,目录分隔为'', 对于UNIX系统,分隔符为'/',针对'..'返回上一级;/与\都被统一转换
//For example on POSIX: path.normalize('/foo/bar//baz/asdf/quux/..') // Returns: '/foo/bar/baz/asdf' //On Windows: path.normalize('C:\\temp\\\\foo\\bar\\..\\'); // Returns: 'C:\\temp\\foo\\'
7.path.relative(from, to) 获取两路径之间的相对关系
from 当前路径,并且方法返回值是基于from指定到to的相对路径 to 到哪路径
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb') // Returns: '../../impl/bbb'
8.path.resolve([...paths]) 以应用程序为起点,根据参数字符串解析出一个绝对路径
var myPath = path.resolve('path1' + '/dist/bundle.js'); console.log(myPath); //Users/cayley/Documents/webpack-demo/path1/dist/bundle.js
9.path.sep 返回操作系统中文件分隔符; window是'\', Unix是'/'
The text was updated successfully, but these errors were encountered:
No branches or pull requests
path到底是什么鬼? 为啥老看见它
虽然我不写node.js,但是总能在各种配置文件(gulpfile.js/webpack.config.js)中看到这段代码,还有好多配置工具的例子中也总是用到它,所以让我们来一起解读一下这段代码中蕴含的所有知识点吧
首先所有用到这段代码的文件都是node.js的一个模块文件
Node应用由模块组成,采用CommonJS模块规范,path就是其中的一个应用模块,path模块提供了一些用于处理文件路径的小工具
内置的require命令用于加载模块文件
require命令的基本功能是,读入并执行一个JavaScript文件,然后返回该模块的exports对象
require命令用于加载文件,后缀名默认为.js
//等同于
根据参数的不同格式,require命令去不同路径寻找模块文件
怎么样没想到吧,一行代码里面竟然蕴含着这么多信息和知识,所以path是node中node_modules目录的已安装模块,在我们的文件中可以按照上述方式加载使用path对外暴露的接口
path中一些常用的方法总结
获取路径中文件名,后缀是可选的,如果加请使用'.xxx'方式来匹配,则返回值中不包括后缀名;
2.path.delimiter
返回操作系统中目录分隔符,如window是';', Unix,linux,mac os中是':',下面举一个POSIX(除了Windows统称)的例子
3.path.dirname(path)
获取路径中目录名
__dirname是node.js中的一个全局变量,用来获取当前模块文件所在目录的完整绝对路径
4.path.extname(path)
获取路径中的扩展名,如果没有'.',则返回空
5.path.join([...paths])
路径结合、合并,路径最后不会带目录分隔符
6.path.normalize(path)
路径解析,得到规范化的路径格式,对window系统,目录分隔为'', 对于UNIX系统,分隔符为'/',针对'..'返回上一级;/与\都被统一转换
7.path.relative(from, to)
获取两路径之间的相对关系
from 当前路径,并且方法返回值是基于from指定到to的相对路径
to 到哪路径
8.path.resolve([...paths])
以应用程序为起点,根据参数字符串解析出一个绝对路径
9.path.sep
返回操作系统中文件分隔符; window是'\', Unix是'/'
第一次写博客,很多地方不熟悉,见谅
The text was updated successfully, but these errors were encountered: