2015-06-08 1 views
0

Если вы чувствуете, что вам нужно проголосовать за этот вопрос, я был бы признателен, если бы прокомментировал его: любая обратная связь лучше, чем отсутствие обратной связи.строка пути форматирования в javascript


Я пытался форматировать массив смешанного пути (Unix и окна формат) и удалить корневой каталог в определенном случае.

Но мне интересно, если кто-то может предложить что-то:

  • либо, что делает использование существующей функции от Nodejs
  • или, что было бы более эффективным/succint.

исходный код:

var js = [ 
    "scripts/content.js", 
    "dist/styles/styles.css", 
    "dist\\vendor\\scripts\\bootstrap.min.js", 
    "dist\\vendor\\scripts\\jquery.min.js" 
]; 

var root = 'dist'; 

var convertPath = function(path) { 
    return path.replace(/\\/g,"/"); 
}; 

var splitted = function(path) { 
    return path.split('/'); 
}; 

var pop = function(arr) { 
    var l = arr.length; 
    if(arr[0] === root){ 
     return arr.splice(1,l-1); 
    } 
    return arr; 
}; 

var merge = function(arr) { 
    return arr.join('/'); 
}; 

var length = js.length; 
var i = 0; 

for(i;i < length; i++){ 
    console.log(js[i] + ' => ' + merge(pop(splitted(convertPath(js[i]))))); 
} 

желаемый результат:

"scripts/content.js => scripts/content.js" 
"dist/styles/styles.css => styles/styles.css" 
"dist\vendor\scripts\bootstrap.min.js => vendor/scripts/bootstrap.min.js" 
"dist\vendor\scripts\jquery.min.js => vendor/scripts/jquery.min.js" 

JSBin preview

Моя цель состоит в том, чтобы автоматизировать installation of bower components with gulp для проекта расширения хром

ответ

2
var output = js.map(function(i){return i + " => " + i.replace(/\\/g, '/').replace(/^dist\//,'');}); 
+0

Это не соответствует этому: '' dist \ vendor \ scripts \ bootstrap.min.js => vendor/scripts/bootstrap.min.js "' – sobolevn

+0

внесли изменения .. –

+1

И если я собираюсь установить пакет ' example_dist'? Путь: 'dist/example_dist/styles.css' – sobolevn

Смежные вопросы