2

yeoman server工作正常,但yeoman build在一个奇怪的地方查找我的主要 requirejs 文件并失败:

<WARN> Unable to read "scripts/scripts/main.js" file (Error code: ENOENT). Use --force to continue. </WARN>

似乎添加了额外的脚本/目录,因为我的 baseUrl 是 ./scripts,但yeoman server在正确的位置发现它很好。这是我的设置,它主要是默认的东西:

在 index.html 中:

<!-- build:js scripts/scripts.js -->
<script src="scripts/vendor/require.js" data-main="scripts/main"></script>
<!-- endbuild -->

在 Gruntfile.js 中:

rjs: {
  // no minification, is done by the min task
  optimize: 'none',
  baseUrl: './scripts',
  wrap: true
},

应用树的相关部分:

.
├── Gruntfile.js
├── app
│   ├── index.html
│   └── scripts
│       ├── main.coffee
│       ├── vendor
│       │   ├── require.js
|       |   └── all other js library scripts
│       └── all my other scripts
└── package.json

如果我像这样从 data-main 属性中删除 scripts/ 目录data-main="main",它实际上确实没有错误地构建。尝试在浏览器中打开构建的应用程序会导致空白页面和控制台错误,并且yeoman server在没有找到 main.js 的情况下失败。我尝试过的对这些参数的其他修改都没有给我一个成功的yeoman build.

我希望我只是缺少一个小的配置怪癖。谢谢您的帮助!

4

1 回答 1

1

我想我name: 'main'在 Gruntfile 的 rjs 配置中遗漏了一个简单的内容,所以它应该如下所示:

rjs: {
  // no minification, is done by the min task
  optimize: 'none',
  baseUrl: './scripts',
  wrap: true,
  name: 'main'
},

这可以正确地与yeoman serverand一起使用yeoman build

于 2013-01-31T02:06:06.613 回答