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

1mode

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

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

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

2mainModulesDir

配置入口模块的目录。

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

3nodeModulesDir

node_modules模块的目录。

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

node 模块查找路径规则

4debug

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

  1. coolie.config({
  2. debug: true
  3. });

5global

定义全局变量。

  1. coolie.config({
  2. global: {
  3. CLASSICAL: true
  4. }
  5. });

6入口模块配置

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

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

data-main的对应关系:

  1. main = mainModulesDir目录 + data-main
  2. base = mainModulesDir + coolie-config.js路径
  3. main = mainModulesDir + coolie-config.js路径 + data-main

最终解释结果为:

7~ 符号

~指向的是当前域,即:

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

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

  1. <script
  2. coolie
  3. src="http://cdn.com/coolie.js"
  4. data-config="~/js/coolie-config.js"
  5. data-main="main.js"
  6. ></script>

如上:

原文: https://coolie.ydr.me/document/coolie-config.js