如何在nodejs中解析包含环境变量的路径?

Pab*_*tyk 9 javascript environment-variables node.js

我想运行一个可执行文件,它的路径包含一个环境变量,例如,如果我想运行chrome.exe我想写这样的东西

var spawn = require('child_process').spawn;
spawn('chrome',[], {cwd: '%LOCALAPPDATA%\\Google\\Chrome\\Application', env: process.env})
Run Code Online (Sandbox Code Playgroud)

代替

var spawn = require('child_process').spawn;
spawn('chrome',[], {cwd: 'C:\\Users\myuser\\AppData\\Local\\Google\\Chrome\\Application', env: process.env}).
Run Code Online (Sandbox Code Playgroud)

有没有我可以使用的包来实现这个目标?

Den*_*ret 14

您可以使用正则表达式将变量替换为以下相关属性process.env:

let str = '%LOCALAPPDATA%\\Google\\Chrome\\Application'
let replaced = str.replace(/%([^%]+)%/g, (_,n) => process.env[n])
Run Code Online (Sandbox Code Playgroud)

当它是一个单行时,我不认为需要一个包.


ZYi*_*nMD 1

这些答案太疯狂了。只需使用path

const folder = require('path').join(
    process.env.LOCALAPPDATA,
    'Google/Chrome/Application',
);

console.log(folder); // C:\Users\MyName\AppData\Local\Google\Chrome\Application
Run Code Online (Sandbox Code Playgroud)