Bower - 安装软件包时出错“path.join的参数必须是字符串”

时间:2014-07-11 20:55:45

标签: node.js npm bower

我刚创建了一个节点项目,并尝试使用bower安装jquery。

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。似乎无法找到有关我收到此错误的原因的相关信息。

3 个答案:

答案 0 :(得分:21)

修复:Clear cache and update to Bower 1.3.8

This正在进行中:

  

tmp软件包更新了它的API以返回清理回调   除了目录名称。 Q然后压扁这两个论点   回调成数组,而bower只需要一个字符串   目录名称。

     

这导致&#34; TypeError:path.join的参数必须是字符串&#34;错误   出现,看似不确定,因为各种景点都在尝试   使用_tempDir值(现在是一个数组)加入一个路径。

     

semver ftw!

答案 1 :(得分:1)

对于仍然遇到此问题的其他人来说,这对我来说很有用:

bower cache clean

答案 2 :(得分:1)

对我来说npm install -update bower还不够。

我需要通过明确指定版本来安装版本:

sudo npm install -q bower@1.3.8

是的,我必须用sudo运行它。