Bower - ошибка при установке пакета "Аргументы к path.join должны быть строками"
Я только что создал проект node и пытаюсь установить jquery с помощью bower.
bower install jquery
Я получаю следующую ошибку:
bower jquery#* not-cached git://github.com/jquery/jquery.git#*
bower jquery#* resolve git://github.com/jquery/jquery.git#*
bower jquery#* error Arguments to path.join must be strings
Stack trace:
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at Object.exports.join (path.js:209:40)
at GitHubResolver._checkout (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\lib\core\resolvers\GitHubResolver.js:54:21)
at C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\lib\core\resolvers\GitResolver.js:69:21
at _fulfilled (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\p-throttler\node_modules\q\q.js:798:54)
at self.promiseDispatch.done (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\p-throttler\node_modules\q\q.js:827:30)
at Promise.promise.promiseDispatch (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\p-throttler\node_modules\q\q.js:760:13)
at C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\p-throttler\node_modules\q\q.js:574:44
at flush (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\p-throttler\node_modules\q\q.js:108:17)
Console trace:
Trace
at StandardRenderer.error (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\lib\renderers\StandardRenderer.js:72:17)
at Logger.<anonymous> (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\bin\bower:111:22)
at Logger.emit (events.js:95:17)
at Logger.emit (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\bower-logger\lib\Logger.js:29:39)
at C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\lib\commands\index.js:40:20
at _rejected (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js:797:24)
at C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js:823:30
at Promise.when (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js:1035:31)
at Promise.promise.promiseDispatch (C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js:741:41)
at C:\Users\Adam\AppData\Roaming\npm\node_modules\bower\node_modules\q\q.js:557:44
System info:
Bower version: 1.3.7
Node version: 0.10.29
OS: Windows_NT 6.2.9200 x64
Я пробовал устанавливать другие пакеты, и они терпят неудачу с той же ошибкой. Насколько я знаю. Запуск Windows 8.1 x64. Кажется, не найти соответствующую информацию о том, почему я получаю эту ошибку.
Ответы
Ответ 1
Исправить: Очистить кеш и обновить до Bower 1.3.8.
Это то, что происходит:
Пакет tmp обновил его API для возврата обратного вызова очистки добавление только к имени каталога. Q затем выкалывает два аргумента к обратному вызову в массив, в то время как беседа ожидала только строку для имя каталога.
Это приводит к тому, что ошибки TypeError: Arguments to path.join должны быть строками появляться, по-видимому, недетерминированные, потому что различные попытки пятен использовать значение _tempDir (теперь массив), чтобы присоединиться к пути.
semver ftw!
Ответ 2
Для других людей, которые все еще сталкиваются с этим, это сделало трюк для меня:
bower cache clean
Ответ 3
Для меня npm install -update bower
было недостаточно.
Мне нужно было установить версию, указав ее явным:
sudo npm install -q [email protected]
и да, я должен был запустить это с помощью sudo
.