Nodejs 获取相对于 process.cwd() 的绝对路径
Nodejs get absolute path relative to process.cwd()
所以我有以下代码块:
#!/usr/bin/env node
const path = require('path');
const yargs = require('yargs').argv;
const ghpages = require('gh-pages');
const randomstring = require("randomstring");
const dirName = randomstring.generate({
length: 12,
charset: 'alphabetic'
});
console.log(__dirname, dirName, process.cwd(), yargs.directory, yargs.branch);
ghpages.publish(path.join(process.cwd(), yargs.directory), {
branch: yargs.branch,
clone: `../../../../tmp/${dirName}`
}, () => {
console.log('removing');
});
这需要 clone
位置的绝对路径。
显然我现在已经对它进行了硬编码以进行测试,但我想要做的是从 process.cwd()
.
获取到 /tmp/
的绝对路径
所以基本上我想要的是如果我 运行 /home/otis
../../../../tmp/${dirName}
中的脚本将变成 ../../tmp/${dirName}
所以我需要根据 process.cwd()
有什么想法吗?
干杯/
您可以使用path.resolve
获取绝对路径。
例如
path.resolve('../src/tmp')
// '/Users/yourusername/src/tmp'
或者你可以使用 path.relative( from, to )
给出 from
和 to
之间的相对路径
所以你的情况,我猜是
path.relative( process.cwd(), "../../../../tmp/" )
使用相对路径是不好的做法,尤其是系统文件夹。如果项目位置发生变化,您也必须更新代码。
如果需要系统临时目录,可以使用以下:
require('os').tmpdir()
它将 return 根据当前 OS。
您更正临时文件夹的绝对路径
所以我有以下代码块:
#!/usr/bin/env node
const path = require('path');
const yargs = require('yargs').argv;
const ghpages = require('gh-pages');
const randomstring = require("randomstring");
const dirName = randomstring.generate({
length: 12,
charset: 'alphabetic'
});
console.log(__dirname, dirName, process.cwd(), yargs.directory, yargs.branch);
ghpages.publish(path.join(process.cwd(), yargs.directory), {
branch: yargs.branch,
clone: `../../../../tmp/${dirName}`
}, () => {
console.log('removing');
});
这需要 clone
位置的绝对路径。
显然我现在已经对它进行了硬编码以进行测试,但我想要做的是从 process.cwd()
.
/tmp/
的绝对路径
所以基本上我想要的是如果我 运行 /home/otis
../../../../tmp/${dirName}
中的脚本将变成 ../../tmp/${dirName}
所以我需要根据 process.cwd()
有什么想法吗?
干杯/
您可以使用path.resolve
获取绝对路径。
例如
path.resolve('../src/tmp')
// '/Users/yourusername/src/tmp'
或者你可以使用 path.relative( from, to )
给出 from
和 to
所以你的情况,我猜是
path.relative( process.cwd(), "../../../../tmp/" )
使用相对路径是不好的做法,尤其是系统文件夹。如果项目位置发生变化,您也必须更新代码。 如果需要系统临时目录,可以使用以下:
require('os').tmpdir()
它将 return 根据当前 OS。
您更正临时文件夹的绝对路径