关于javascript:无法使用Grunt安装Bower组件 – “path.join的参数必须是字符串”

Can't install Bower components using Grunt - “Arguments to path.join must be strings”

我在使用Gruntfile.js安装Bower组件时遇到问题。 但是,我可以使用Bower命令安装Bower组件。

使用Bower命令安装Bower组件工作正常。

bower install

但是我无法使用Grunt命令安装Bower组件

grunt bower:install

她的一些细节。

bower.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
   "name":"test",
   "version":"0.0.2",
   "dependencies": {
       "angular":"latest",
       "bootstrap":"latest",
       "lodash":"latest",
       "font-awesome":"latest"
    },
   "devDependencies": {
       "angular-mocks":"latest"
    }
}

.bowerrc:

1
2
3
4
{
   "directory":"libs",
   "json":"bower.json"
}

Gruntfile.js:

1
2
3
4
5
6
7
8
9
bower: {
    install: {
        options: {
            install: true,
            copy: false,
            targetDir: './libs'
        }
    }
}

当我尝试使用Grunt安装Bower组件时,我收到以下错误:

1
2
3
4
5
6
Running"bower:install" (bower) task
...
bower validate 1.3.15 against git://github.com/angular/bower-angular.git#*
bower new version for git://github.com/angular/bower-angular.git#*
bower resolve git://github.com/angular/bower-angular.git#*
Fatal error: Arguments to path.join must be strings

有没有人看到我的Gruntfile.js文件有什么问题?为什么我在使用Grunt安装Bower组件时出现此错误?
谢谢。


以下是我的配置对我有用的方法:

1
2
3
4
5
6
7
8
9
10
11
bower: {
            install: {
                options: {
                    targetDir: bowerDir,
                    install: true,
                    cleanTargetDir: false,
                    cleanBowerDir: false,
                    bowerOptions: {}
                }
            }
        }

还要确保package.json文件中包含依赖项:

1
2
3
4
5
 "devDependencies": {
   "bower":"^1.3.1",
   "grunt":"^0.4.5",
   "grunt-bower-task":"^0.4.0",
   "grunt-cli":"^0.1.13",

还尝试运行这些命令:

1
2
npm install grunt-cli --save-dev
npm install grunt-bower-task --save-dev