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
在正确的位置找到了它。这是我的设置,它主要是默认的东西:
:
<!-- 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
。
我希望我只是错过了一个小配置怪癖。谢谢你的帮助!
答案 0 :(得分:1)
我想我在Gruntfile的rjs配置中缺少一个简单的name: 'main'
,所以看起来应该是这样的:
rjs: {
// no minification, is done by the min task
optimize: 'none',
baseUrl: './scripts',
wrap: true,
name: 'main'
},
这适用于yeoman server
和yeoman build
。