yeoman构建失败 - rjs mainConfigFile位置

时间:2013-01-30 03:02:50

标签: javascript requirejs rjs yeoman gruntjs

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="main"这样的data-main属性中删除scripts /目录,它实际上构建时没有错误。尝试在浏览器中打开构建的应用程序会导致出现空白页面和控制台错误,yeoman server在找不到main.js时失败。没有其他修补我试过的这些参数给了我一个成功的yeoman build

我希望我只是错过了一个小配置怪癖。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我想我在Gruntfile的rjs配置中缺少一个简单的name: 'main',所以看起来应该是这样的:

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

这适用于yeoman serveryeoman build