steal-config
steal是一个依赖管理库,用于加载moduleId,这里讲一下steal.config配置
当加载steal.js后会自动加载stealconfig.js文件.
使用steal
http://javascriptmvc.com/docs/steal.use.html#section_Addsteal_jstoyourpage
示例目录
ROOT/
steal/
steal.js
...
myapp/
myapp.js
myapp.less
mymodule.js
index.html
stealconfig.js
steal目录, myapp目录, stealconfig.js
1)加载steal.js到page中
<script src='../steal/steal.js?myapp/myapp.js'>
</script>
或者:
<script src='../steal/steal.js?STARTFILE,ENV'>
</script>
包含steal目录的目录是root目录,默认,所有的module都从root目录加载,以下情况除外:
"/bar.js"
作用于所有module(ex: changing the location of the root folder)
作用于单个module(ex:通过设置shim: 可以让 'steal/dev/dev.js' should not be added to production)
作用于startup module(ex:可以指定steal首次加载的module)
调用steal.config(configOptions)
当steal.js加载并运行后,你可以在application任何地方调用steal.confg,然而, 当steal.js加载后,它将自动加载stealconfig.js。
3)加载modules
使用steal(ids...)加载依赖的modules, ids像如下:
// in myapp/myapp.js
steal('components/item',
'person.js',
'./view.ejs')
steal先使用steal.id函数将传递给steal的id转化为moduleId, 然后通过steal.idToUri将moduleId转化为资源的uri路径.
steal.id和steal.idToUri行为可以通过steal.config的map和paths项进行配置,默认行为如下:
ROOT/components/item/item.js
ROOT/person.js
ROOT/currentWorkId/view.ejs
在moduleIds项后,可以传一个definition函数,如:
// in myapp/myapp.js
steal('components/item',
'person.js',
'./view.ejs',
function(item, Person, viewEJS){
return MODULEVALUE;
})
definition函数的参数是配置的每个module的值,如下无返回值,则该参数为undefined