我有以下代码块:
#!/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()
生成路径
有什么想法吗?
2条答案
按热度按时间hs1rzwqc1#
你可以使用
path.resolve
来获取绝对路径。例如
字符串
或者可以使用
path.relative( from, to )
,它给出了from
和to
之间的相对路径对你来说,我想是的
path.relative( process.cwd(), "../../../../tmp/" )
个uqcuzwp82#
使用相对路径是不好的做法,尤其是系统文件夹。如果项目位置发生变化,您也必须更新代码。如果您需要系统临时目录,您可以使用以下方法:
字符串
它将根据当前操作系统返回到临时文件夹的正确绝对路径。