nodejs node example current __dirname node.js path

node.js - node - npm path



Expandir/Resolver ~ en node.js (5)

Esta biblioteca NodeJS es compatible con esta función a través de una devolución de llamada asíncrona. Utiliza la lib-passswd lib para realizar la expansión, por lo que probablemente no sea portátil para Windows u otras plataformas que no sean Unix / Linux.

Si solo desea expandir la página de inicio para el usuario actual, entonces esta API más liviana puede ser todo lo que necesita. También es sincrónico, es más fácil de usar y funciona en la mayoría de las plataformas.

Ejemplos:

expandHomeDir = require(''expand-home-dir'') expandHomeDir(''~'') // => /Users/azer expandHomeDir(''~/foo/bar/qux.corge'') // => /Users/azer/foo/bar/qux.corge

Otra lib relacionada es home-dir que devuelve el directorio de inicio de un usuario en cualquier plataforma:

https://www.npmjs.org/package/home-dir

Soy nuevo en nodejs. ¿Puede el nodo resolver ~ (directorio de inicio de Unix) ejemplo ~ foo, ~ barra de / home / foo, / home / bar

> path.normalize(''~mvaidya'') ''~mvaidya'' > path.resolve(''~mvaidya'') ''/home/mvaidya/~mvaidya'' >

Esta respuesta es incorrecta; Espero que ~ mvaidya deba resolv / home / mvaidya



La razón por la que esto no está en el nodo es porque ~ expansión es algo específico de bash (o shell). No está claro cómo escapar adecuadamente. Ver este comentario para más detalles.

Hay varias bibliotecas que ofrecen esto, la mayoría de unas pocas líneas de código ...

Entonces probablemente quieras hacer esto tú mismo.


Solo lo necesitaba hoy y el único comando menos evasivo era el del os .

$ node > os.homedir() ''/Users/mdesales''

No estoy seguro si su sintaxis es correcta ya que ~ ya es un resultado para el directorio de inicio del usuario actual


Como notó QZ Support , puede usar process.env.HOME en OSX / Linux. Aquí hay una función simple sin dependencias.

const path = require(''path''); function resolveHome(filepath) { if (filepath[0] === ''~'') { return path.join(process.env.HOME, filepath.slice(1)); } return filepath; }