因为main脚本是异步加载,如果页面中其他JS代码依赖这个main脚本,会报错?
这里有人深入使用过RequireJS么?
一个让人抓狂的例子,应该是在main.js中配置了baseURL,然后在页面中require这个baseURL下对应代码吧,赶脚会出错的,呵呵
这个是不是RequireJS的痛点呢?
那么baseURL应该在哪里配置呢? 在每个html页面写一段配置么?又赶脚好麻烦:(
这里有用RequireJS的盆友么?
快来现身说法啊:)
1
yyfearth 2015-01-01 10:53:40 +08:00
既然用了RequireJS 页面中怎么还会有其他JS代码?
|
2
pertersonvv OP @yyfearth 所有代码都不夹杂在html中么?
|
3
yyfearth 2015-01-01 10:56:25 +08:00
既然用了RequireJS 所有的JS代码都应该在main.js中被引用和被调用
RequireJS本来就是用来解决各种js的依赖的 而且现在不都是希望要异步加载的吗 这样就不会阻断html页面的渲染 |
4
yyfearth 2015-01-01 10:56:59 +08:00
@pertersonvv 既然代码是放在html里面的 那你用RequireJS干嘛?
|
5
yyfearth 2015-01-01 11:00:35 +08:00
做webapp最基本的就是 html页面 css样式 js代码 三者分离
所以js代码都是全部在一个个js文件里面的 然后html页面用script一个个引用进去 但是你一个个加script到html麻烦而且容易出问题 然后RequireJS就出来解决这个问题 而且用RequireJS最后 一般都是用他的一个脚本 把所有js文件打包成一个js文件 所以只要加载一次就可以了 RequireJS异步调用分散的js文件 一般只用在开发环境中 |
6
yimity 2015-01-01 16:42:17 +08:00
那我有一种需求,有50个模块,肯定要在配置文件中配置,这时候,这个配置文件应该如何加载?data-main应该如何写?模块应该如何写?谢谢。
|
7
yyfearth 2015-01-01 16:53:44 +08:00
@yimity data-main 只是一个入口 就像c java的main函数一样
之后你要加载什么 都可以用代码在这main.js里面按照你的需求加载所需要的模块 比如 main.js 你可以 ``` if (env === 'local') { require(['a','b'], function(a, b){ .... }); } else { require(['a','c'], function(a, c){ .... }); } ``` 你可以有更加复杂的逻辑 比如根据json的配制加载不同的模块 或者根据浏览器的类型之类 |
8
hetal 2017-12-14 09:29:14 +08:00
可以参考这个吧
<script async src="/js/lib/require.js" data-urlargs="ver=10.1" data-config="/js/src/config.js" data-main="/js/src/index" ></script> https://github.com/requirejs/requirejs/pull/1705 |