yeoman server
工作正常,但是 yeoman build
在一个奇怪的地方查找我的主要 requirejs 文件并失败:
<WARN> Unable to read "scripts/scripts/main.js" file (Error code: ENOENT). Use --force to continue. </WARN>
似乎添加了额外的 scripts/目录,因为我的 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
。
我希望我只是遗漏了一个小的配置问题。感谢您的帮助!
最佳答案
我想我的 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
一起正常工作。
关于javascript - yeoman 构建失败 - rjs mainConfigFile 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595979/