mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
1d5b6f26fe
Conflicts: ChangeLog Makefile deps/npm/AUTHORS deps/npm/html/api/bin.html deps/npm/html/api/bugs.html deps/npm/html/api/commands.html deps/npm/html/api/config.html deps/npm/html/api/deprecate.html deps/npm/html/api/docs.html deps/npm/html/api/edit.html deps/npm/html/api/explore.html deps/npm/html/api/help-search.html deps/npm/html/api/init.html deps/npm/html/api/install.html deps/npm/html/api/link.html deps/npm/html/api/load.html deps/npm/html/api/ls.html deps/npm/html/api/npm.html deps/npm/html/api/outdated.html deps/npm/html/api/owner.html deps/npm/html/api/pack.html deps/npm/html/api/prefix.html deps/npm/html/api/prune.html deps/npm/html/api/publish.html deps/npm/html/api/rebuild.html deps/npm/html/api/restart.html deps/npm/html/api/root.html deps/npm/html/api/run-script.html deps/npm/html/api/search.html deps/npm/html/api/shrinkwrap.html deps/npm/html/api/start.html deps/npm/html/api/stop.html deps/npm/html/api/submodule.html deps/npm/html/api/tag.html deps/npm/html/api/test.html deps/npm/html/api/uninstall.html deps/npm/html/api/unpublish.html deps/npm/html/api/update.html deps/npm/html/api/version.html deps/npm/html/api/view.html deps/npm/html/api/whoami.html deps/npm/html/doc/README.html deps/npm/html/doc/adduser.html deps/npm/html/doc/bin.html deps/npm/html/doc/bugs.html deps/npm/html/doc/build.html deps/npm/html/doc/bundle.html deps/npm/html/doc/cache.html deps/npm/html/doc/changelog.html deps/npm/html/doc/coding-style.html deps/npm/html/doc/completion.html deps/npm/html/doc/config.html deps/npm/html/doc/deprecate.html deps/npm/html/doc/developers.html deps/npm/html/doc/disputes.html deps/npm/html/doc/docs.html deps/npm/html/doc/edit.html deps/npm/html/doc/explore.html deps/npm/html/doc/faq.html deps/npm/html/doc/folders.html deps/npm/html/doc/help-search.html deps/npm/html/doc/help.html deps/npm/html/doc/index.html deps/npm/html/doc/init.html deps/npm/html/doc/install.html deps/npm/html/doc/json.html deps/npm/html/doc/link.html deps/npm/html/doc/list.html deps/npm/html/doc/npm.html deps/npm/html/doc/outdated.html deps/npm/html/doc/owner.html deps/npm/html/doc/pack.html deps/npm/html/doc/prefix.html deps/npm/html/doc/prune.html deps/npm/html/doc/publish.html deps/npm/html/doc/rebuild.html deps/npm/html/doc/registry.html deps/npm/html/doc/removing-npm.html deps/npm/html/doc/restart.html deps/npm/html/doc/root.html deps/npm/html/doc/run-script.html deps/npm/html/doc/scripts.html deps/npm/html/doc/search.html deps/npm/html/doc/semver.html deps/npm/html/doc/shrinkwrap.html deps/npm/html/doc/star.html deps/npm/html/doc/start.html deps/npm/html/doc/stop.html deps/npm/html/doc/submodule.html deps/npm/html/doc/tag.html deps/npm/html/doc/test.html deps/npm/html/doc/uninstall.html deps/npm/html/doc/unpublish.html deps/npm/html/doc/update.html deps/npm/html/doc/version.html deps/npm/html/doc/view.html deps/npm/html/doc/whoami.html deps/npm/lib/install.js deps/npm/lib/ls.js deps/npm/man/man1/npm.1 deps/npm/man/man1/shrinkwrap.1 deps/npm/man/man3/npm.3 deps/npm/man/man3/shrinkwrap.3 deps/npm/node_modules/request/main.js deps/npm/node_modules/request/package.json deps/npm/package.json deps/uv/src/unix/core.c deps/v8/src/conversions-inl.h deps/v8/src/elements.cc deps/v8/src/version.cc doc/about/index.html doc/api/assert.markdown doc/api/child_process.markdown doc/api/cluster.markdown doc/api/crypto.markdown doc/api/debugger.markdown doc/api/dgram.markdown doc/api/dns.markdown doc/api/documentation.markdown doc/api/events.markdown doc/api/fs.markdown doc/api/globals.markdown doc/api/http.markdown doc/api/https.markdown doc/api/modules.markdown doc/api/net.markdown doc/api/os.markdown doc/api/path.markdown doc/api/process.markdown doc/api/querystring.markdown doc/api/readline.markdown doc/api/stdio.markdown doc/api/stream.markdown doc/api/timers.markdown doc/api/tls.markdown doc/api/tty.markdown doc/api/url.markdown doc/api/util.markdown doc/api/vm.markdown doc/api/zlib.markdown doc/api_assets/style.css doc/community/index.html doc/index.html doc/logos/index.html doc/template.html src/node_version.h tools/doc/html.js tools/gyp/test/mac/app-bundle/empty.c
142 lines
3.4 KiB
Markdown
142 lines
3.4 KiB
Markdown
# Path
|
|
|
|
Stability: 3 - Stable
|
|
|
|
This module contains utilities for handling and transforming file
|
|
paths. Almost all these methods perform only string transformations.
|
|
The file system is not consulted to check whether paths are valid.
|
|
|
|
Use `require('path')` to use this module. The following methods are provided:
|
|
|
|
## path.normalize(p)
|
|
|
|
Normalize a string path, taking care of `'..'` and `'.'` parts.
|
|
|
|
When multiple slashes are found, they're replaced by a single one;
|
|
when the path contains a trailing slash, it is preserved.
|
|
On windows backslashes are used.
|
|
|
|
Example:
|
|
|
|
path.normalize('/foo/bar//baz/asdf/quux/..')
|
|
// returns
|
|
'/foo/bar/baz/asdf'
|
|
|
|
## path.join([path1], [path2], [...])
|
|
|
|
Join all arguments together and normalize the resulting path.
|
|
Non-string arguments are ignored.
|
|
|
|
Example:
|
|
|
|
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
|
|
// returns
|
|
'/foo/bar/baz/asdf'
|
|
|
|
path.join('foo', {}, 'bar')
|
|
// returns
|
|
'foo/bar'
|
|
|
|
## path.resolve([from ...], to)
|
|
|
|
Resolves `to` to an absolute path.
|
|
|
|
If `to` isn't already absolute `from` arguments are prepended in right to left
|
|
order, until an absolute path is found. If after using all `from` paths still
|
|
no absolute path is found, the current working directory is used as well. The
|
|
resulting path is normalized, and trailing slashes are removed unless the path
|
|
gets resolved to the root directory. Non-string arguments are ignored.
|
|
|
|
Another way to think of it is as a sequence of `cd` commands in a shell.
|
|
|
|
path.resolve('foo/bar', '/tmp/file/', '..', 'a/../subfile')
|
|
|
|
Is similar to:
|
|
|
|
cd foo/bar
|
|
cd /tmp/file/
|
|
cd ..
|
|
cd a/../subfile
|
|
pwd
|
|
|
|
The difference is that the different paths don't need to exist and may also be
|
|
files.
|
|
|
|
Examples:
|
|
|
|
path.resolve('/foo/bar', './baz')
|
|
// returns
|
|
'/foo/bar/baz'
|
|
|
|
path.resolve('/foo/bar', '/tmp/file/')
|
|
// returns
|
|
'/tmp/file'
|
|
|
|
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif')
|
|
// if currently in /home/myself/node, it returns
|
|
'/home/myself/node/wwwroot/static_files/gif/image.gif'
|
|
|
|
## path.relative(from, to)
|
|
|
|
Solve the relative path from `from` to `to`.
|
|
|
|
At times we have two absolute paths, and we need to derive the relative
|
|
path from one to the other. This is actually the reverse transform of
|
|
`path.resolve`, which means we see that:
|
|
|
|
path.resolve(from, path.relative(from, to)) == path.resolve(to)
|
|
|
|
Examples:
|
|
|
|
path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb')
|
|
// returns
|
|
'..\\..\\impl\\bbb'
|
|
|
|
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb')
|
|
// returns
|
|
'../../impl/bbb'
|
|
|
|
## path.dirname(p)
|
|
|
|
Return the directory name of a path. Similar to the Unix `dirname` command.
|
|
|
|
Example:
|
|
|
|
path.dirname('/foo/bar/baz/asdf/quux')
|
|
// returns
|
|
'/foo/bar/baz/asdf'
|
|
|
|
## path.basename(p, [ext])
|
|
|
|
Return the last portion of a path. Similar to the Unix `basename` command.
|
|
|
|
Example:
|
|
|
|
path.basename('/foo/bar/baz/asdf/quux.html')
|
|
// returns
|
|
'quux.html'
|
|
|
|
path.basename('/foo/bar/baz/asdf/quux.html', '.html')
|
|
// returns
|
|
'quux'
|
|
|
|
## path.extname(p)
|
|
|
|
Return the extension of the path, from the last '.' to end of string
|
|
in the last portion of the path. If there is no '.' in the last portion
|
|
of the path or the first character of it is '.', then it returns
|
|
an empty string. Examples:
|
|
|
|
path.extname('index.html')
|
|
// returns
|
|
'.html'
|
|
|
|
path.extname('index.')
|
|
// returns
|
|
'.'
|
|
|
|
path.extname('index')
|
|
// returns
|
|
''
|
|
|