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.jsy 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 existTL;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.
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.__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'),