42

我正在尝试将我的 Yeoman 的 Angular 应用程序部署到我的生产服务器。当我尝试运行 grunt build 命令时,出现此错误:

运行“wiredep:app”(wiredep)任务警告:ENOENT,没有这样的文件或目录'/usr/share/nginx/html/data/gaia-app/app/bower.json' 使用--force 继续。

如果我使用grunt --force我的应用程序已损坏...

我在 Ubuntu 14.04

有任何想法吗?

4

5 回答 5

86

此问题有两种解决方案,具体取决于您要使用的wiredep 版本。

如果您想使用“^1.9.0”,请确保从 Gruntfile.js 中删除 cwd 属性。如果您是 angular-generator 用户,并且当前在 Wiredep 任务的配置上指定了 cwd 属性,这是一个常见问题。

如果您不介意使用“1.8.0”,请确保将该版本固定在您的 package.json 中。如果您通过 grunt-wiredep 包含wiredep,那么您将必须手动添加wiredep 并将其固定。如果您坚持使用“1.8.0”,请将 cwd 属性保留在任务的配置中。

于 2014-09-07T18:52:12.857 回答
28

在google joshs解决方案上进行了相当多的搜索后很好解决了我的问题。我刚刚删除<%= yeoman.app %>

wiredep: {      
  options:  { */code was here */ }
}
于 2014-09-07T23:00:58.523 回答
4

解决方案是从 Grunfile.js 中删除 cwd 属性

请参阅此内容以供参考:

https://github.com/stephenplusplus/grunt-wiredep/issues/100

于 2014-09-07T15:40:02.493 回答
4

我从 Melmoth 找到的这个答案:

Gruntwiredep:app 找不到 Bower 包

加上注释掉 gruntfile.js 中的第 166 行:

// cwd: '<%= yeoman.app %>'

为我解决了这个问题。


根据要求添加细节

我正在做 Yeoman 1 小时代码实验室http://yeoman.io/codelab.html

安装后我运行grunt serve并得到一个错误:Running "wiredep:app" (wiredep) task Warning: ENOENT, no such file or directory '../charlottesFolder/app/bower.json'

我试着移动:

charlottesFolder/bower.jsonto charlotteFolder/app/bower.json(实际上不要这样做,因为它是错误的)

然后抛出错误:Running "wiredep:app" (wiredep) task Cannot find where you keep your Bower packages.

这让我想到了Melmoth 的答案Cannot find Bower packages——他的解决方案与cwd注释掉Gruntfile.js.

于 2014-12-22T18:48:27.340 回答
-1

您必须将 grunt-wiredep 依赖项设置为修复版本。

“咕噜声”:“1.8.0”,

于 2014-09-07T15:52:15.117 回答