1模块类型

除了默认的 javascript 模块,还有 css、html 以及资源模块。coolie.js 默认就支持jshtmlcssfiletextjson六中模块类型。并且支持模块类型出口定义,如html模块出口为一个 url,或者一个image模块出口为 base64。

2模块语法

使用方法:

  1. require(modulePath[, modulePipeline]);
  • modulePath:模块路径,即模块的相对路径,相对于当前(宿主)模块
  • modulePipeline:模块管道,模块的入口类型和模块的出口类型(如image|base64,即入口模块是图片,出口转换为 base64 编码),默认的入口、出口类型都为 js
    如:
  1. require('./some.css', 'css|style');
  2. // 标记 some.css 模块为 css 模块
  3. // 但模块的出口是 style,即会被自动插入到 DOM 中

3默认模块类型

默认的模块类型出口为:

  • js:js
  • css:text
  • text:text
  • html:text
  • file:url
  • json:js

3.1js 模块

  1. // 返回 js 模块
  2. require('./some.js');
  3. // 回调返回 js 模块
  4. require.async('./some.js', callback);

3.2css 模块

  1. // coolie@2.x 支持扩展名匹配
  2. require('./some.css');
  3. // 返回 css 文本
  4. require('./some.css', 'css');
  5. // 返回 css url
  6. require('./some.css', 'css|url');
  7. // 返回 css base64
  8. require('./some.css', 'css|base64');
  9. // 返回 css 文本
  10. require('./some.css', 'css|text');
  11. // 自动插入样式并返回`style`节点
  12. require('./some.css', 'css|style');

3.3text 模块

  1. // coolie@2.x 支持扩展名匹配
  2. require('./some.txt');
  3. // 返回 text 文本
  4. require('./some.txt', 'text');
  5. // 返回 text url
  6. require('./some.txt', 'text|url');
  7. // 返回 text base64
  8. require('./some.txt', 'text|base64');
  9. // 返回 text 文本
  10. require('./some.txt', 'text|text');

3.4html 模块

  1. // coolie@2.x 支持扩展名匹配
  2. require('./some.html');
  3. // 返回 html 文本
  4. require('./some.html', 'html');
  5. // 返回 html url
  6. require('./some.html', 'html|url');
  7. // 返回 html base64
  8. require('./some.html', 'html|base64');
  9. // 返回 html 文本
  10. require('./some.html', 'html|text');

3.5file 模块

  1. // 返回文件 url
  2. require('./some.jpg', 'file');
  3. // 返回文件 url
  4. require('./some.jpg', 'file|url');
  5. // 返回文件 base64
  6. require('./some.jpg', 'file|base64');

3.6json 模块

  1. // coolie@2.x 支持扩展名匹配
  2. require('./some.json');
  3. // 返回 json 的 js 对象
  4. require('./some.json', 'json');
  5. // 返回 json 的 url 格式
  6. require('./some.json', 'json|url');
  7. // 返回 json 的 base64 格式
  8. require('./some.json', 'json|base64');
  9. // 返回 json 的文本
  10. require('./some.json', 'json|text');

require.async为异步模块,详细点这里

原文: https://coolie.ydr.me/introduction/module-type