我的应用:
define(function bringTheAction() { console.log('Loaded!'); });
使用data-main优化和加载:
<script data-main="src/app" src="lib/require.js"></script>
并且RequireJS会加载文件:
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="app" src="src/app.js"></script>
但是,bringTheAction
回调永远不会被调用,我的应用程序只是空闲。
我可以通过在控制台中执行require(['src/app']);
或在未构建的代码中将define
更改为require
来解决问题,但是:
define
,因此可以使用Squire模拟模块。在开发过程中,未构建的代码加载方式不同:
<script src="lib/require.js"></script>
<script src="src/require.config.js"></script>
<script>require({ /* config applicable to dev */ }, ['src/app'], function () {});</script>
它像梦一样。
答案 0 :(得分:0)
好吧,经过多次混淆,我有点想到这一点。
我注意到属性data-requiremodule="app"
(在RequireJS注入的脚本标记上)并假设我需要的是data-requiremodule="src/app"
,这样一旦文件加载,RequireJS知道require
的内容。< / p>
我不确定为什么在此属性上省略src/
,因为我的配置被调整为从src/
上方的目录操作(因此我通过前缀src/
来引用模块, lib/
等)。但是,作为修复,我在构建配置中添加了一个别名,以满足RequireJS:
paths: { 'app': 'src/app'; }
现在该属性实际上指向要加载的模块。