我在 index.html :
上有以下script
标记
<script src="scripts/lib/require.js" data-main="scripts/main" type="application/javascript"></script>
这将加载 scripts / main.js :
require.config({
baseUrl: 'scripts',
shim: {
'lib/angular': { exports: 'angular' },
'app': ['lib/angular']
}
scriptType: 'application/javascript'
});
require(['app'], function () {
// Some code
});
正如您所看到的,我正在定义scriptType: 'application/javascript
。
这适用于已加载的依赖项,但不适用于 main.js 本身。
这是我生成的HTML:
<script src="scripts/lib/require.js" data-main="scripts/main" type="application/javascript"></script>
<script type="text/javascript" charset="utf-8" async-data-requirecontext="_" data-requiremodule="main" src="scripts/main.js"></script>
<script type="application/javascript" charset="utf-8" async-data-requirecontext="_" data-requiremodule="lib/angular" src="scripts/lib/angular.js"></script>
<script type="application/javascript" charset="utf-8" async-data-requirecontext="_" data-requiremodule="app" src="scripts/app.js"></script>
您可以注意到,scripts/main.js
正在加载type="text/javascript"
。
如何将其加载type="application/javascript"
作为其余脚本?
答案 0 :(得分:0)
所以要做到这一点我做的就像你做的那样,但是将config.js移动到一个单独的文件中。在这种情况下,您需要自己为config配置type
(如果您需要为配置使用相同的类型)。诀窍是你需要在配置准备好后执行require()
https://github.com/jrburke/requirejs/issues/354#issuecomment-6631063(第二个变体,但我使用yo requirejs
进行测试)
索引是
<script src="bower_components/requirejs/require.js"></script>
<script src="app/config.js"></script>
<script>
// same as data-main
require(['app/main'], function(){ });
</script>
配置
require.config({
// make components more sensible
// expose jquery
paths: {
"components": "../bower_components",
"jquery": "./bower_components/jquery/dist/jquery"
},
scriptType: 'application/javascript'
});
并且主文件是
define(["jquery"], function($) {
$('body').append('jQuery ' + $.fn.jquery + ' loaded!');
});