Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

2.9K
Views
¿Cómo retroceder 1 nivel de carpeta con __dirname?

Estoy usando gulp-karma y me enfrento a un problema simple, pero parece que no puedo encontrar lo que estoy haciendo mal.

 gulp.task('test', function (done) { karma.start({ configFile: __dirname + '..\\test\\' +'\karma.conf.js', singleRun: true }, done); });

Aquí está el código que estoy usando y parece que no puedo retroceder 1 nivel en el directorio de carpetas. Cuando hago lo anterior, simplemente agregue ..\ al directorio de la carpeta sin retroceder 1 nivel (que es el uso habitual de ..\ ). A continuación se muestra la estructura de carpetas.

 parent| test|karma.conf.js webapirole|gulpfile.js

y mi carpeta está dentro de la carpeta webapirole . Quiero retroceder 1 carpeta e ir a la carpeta de prueba que contiene el archivo karma.conf.js. ¿Alguien puede hacerme entender lo que estoy haciendo mal aquí?

error que estoy recibiendo

 [18:06:32] Starting 'tdd'... ERROR [config]: File C:\Users\Documents\WebApiRole..\test\karma.conf.js does not exist
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

TL;DR

Utilice path.join(__dirname, '..', 'test', 'karma.conf.js') . Impedir el uso de barras.

Respuesta larga

Como han señalado muchas respuestas, usar el módulo de path es probablemente la mejor manera. Sin embargo, la mayoría de las soluciones aquí han vuelto a usar barras como:

path.join(__dirname+'../test/karma.conf.js')

Sin embargo, al hacer esto, está superando el propósito de usar path . Uno usa la path para realizar operaciones independientemente del sistema operativo subyacente (Linux, Windows, etc.). Solo para dar un poco de información, puede realizar las operaciones de ruta directamente como operaciones de cadena (como __dirname + '../test/karma.conf.js' . No hace esto porque Linux usa barras inclinadas ( / ), Windows usa barras inclinadas hacia atrás (\), lo que hace que su aplicación sea propensa a errores cuando la transfiere a otros sistemas operativos.

Por lo tanto, la mejor manera sería:

path.join(__dirname, '..', 'test', 'karma.conf.js')

Y, por supuesto, volviendo: evite el uso de barras en su ruta. path.join , en lugar de eso, extienda sus parámetros.

over 4 years ago · Santiago Trujillo Report

0

Estoy usando ( ruta ) NPM para el uso anterior...

simplemente requiere la ruta npm en el archivo js. Luego use

 let reqPath = path.join(__dirname, '../../../');//It goes three folders or directories back from given __dirname.
over 4 years ago · Santiago Trujillo Report

0

__dirname es solo una cadena. puede usar ../ para recorrer la estructura de carpetas y path.join para resolver la ruta

 path = require('path') configFile: path.join(__dirname, '../test/karma.conf.js'),
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!