模块加载器配置文档

模块加载配置文件coolie-config.js,用于配置模块加载器的参数。

1mode

配置开发环境适应的模块规范。

  • CommonJS:CJS
  • CMD:CMD
  • AMD:AMD
coolie.config({
    mode: "CJS"
});

coolie 目前支持的模块规范。 coolie-cli 在构建的时候,对待非 CommonJS 规范的模块会进行兼容处理, 为了保证构建效率,请在确定的情况下,标明你使用的模块规范。

2mainModulesDir

配置入口模块的目录。

coolie.config({
    mainModulesDir: "/static/js/main/"
});

3nodeModulesDir

node_modules模块的目录。

coolie.config({
    nodeModulesDir: "/node_modules/"
});

node 模块查找路径规则

4debug

默认为true,构建后会被重写为false

coolie.config({
    debug: true
});

5global

定义全局变量。

coolie.config({
    global: {
        CLASSICAL: true
    }
});

6入口模块配置

同样也可以在 html 里修改模块加载器的配置。 即在 html 里的配置,一个简单的配置示例:

<script
coolie
src="coolie.js"
data-config="coolie-config.js"
data-main="main.js"
></script>
  • coolie属性:标记该script被 coolie 构建时管理(coolie 属于 coolie 指令)。
  • src属性:标记模块加载器的路径,相对于当前页面。
  • data-config属性:标记模块加载器配置文件的路径,相对于模块加载器。
  • data-main属性:标记当前页面的入口模块,相对于模块加载器配置文件里的mainModulesDir路径。

data-config的对应关系:

coolie-config.js路径 = data-config值 + coolie.js路径

data-main的对应关系:

main = mainModulesDir目录 + data-main值
base = mainModulesDir值 + coolie-config.js路径
main = mainModulesDir值 + coolie-config.js路径 + data-main值

最终解释结果为:

  • mainModulesDir./app/
  • srchttp://localhost/coolie.js
  • data-confighttp://localhost/coolie-config.js
  • data-mainhttp://localhost/app/main.js

7~ 符号

~指向的是当前域,即:

~ = location.protocol + '//' + location.host

因为,模块加载器有可能是放在 CDN 上的,而配置文件和入口模块是当前域的,导致不同域,无法标记路径的相对关系。 这时候,可以使用~符号来标记配置文件路径。

<script
coolie
src="http://cdn.com/coolie.js"
data-config="~/js/coolie-config.js"
data-main="main.js"
></script>

如上:

  • src属性:标记模块加载器的路径,使用的是远程地址。
  • data-config属性:标记模块加载器配置文件的路径,使用~符号指向当前域。

最终解释结果为:

  • mainModulesDir./app/
  • srchttp://cdn.com/coolie.js
  • data-confighttp://localhost/coolie-config.js
  • data-mainhttp://localhost/app/main.js