当前位置: 首页 > 工具软件 > JavaScriptMVC > 使用案例 >

javascriptmvc-steal

何高旻
2023-12-01

steal-config

steal是一个依赖管理库,用于加载moduleId,这里讲一下steal.config配置

当加载steal.js后会自动加载stealconfig.js文件.


使用steal

http://javascriptmvc.com/docs/steal.use.html#section_Addsteal_jstoyourpage

  • 加载steal.js到page中
  • 配置steal的行为
  • 加载modules
  • 返回module值

示例目录

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目录加载,以下情况除外:

  • "http://" or "https://" like "http://foo.com/bar.js"
  • "/" like "/bar.js"
  • 或者通过steal.config修改了root目录路径
2) 配置steal的行为
steal.config(configOptions)允许配置steal加载module的行为:

作用于所有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项进行配置,默认行为如下:

  • "components/item" is found in ROOT/components/item/item.js
  • "person.js" is found in ROOT/person.js
  • "./view.ejs" is found in ROOT/currentWorkId/view.ejs
4) 返回module值

在moduleIds项后,可以传一个definition函数,如:

// in myapp/myapp.js
steal('components/item',
      'person.js',
      './view.ejs', 

      function(item, Person, viewEJS){

          return MODULEVALUE;

      })

definition函数的参数是配置的每个module的值,如下无返回值,则该参数为undefined




相关阅读

相关文章

相关问答