后浪云百度小程序教程:模块化

  • 模块化
    • 模块化编译方式
      • 依赖分析模式
      • 普通编译模式
      • 隔离编译模式

    模块化

    解释:可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块可以通过 module.exports、exports 或者 export 对外暴露接口,使用 require 或者 import 进行导入。

    代码示例

    • JS
     
     
     
    1. // utils.js
    2. var name = 'swan';
    3. var age = 0;
    4. function logName() {
    5. console.log(name);
    6. }
    7. function logAge() {
    8. console.log(age);
    9. }
    10. module.exports.logName = logName;
    11. module.exports.logAge = logAge;

    可以在需要使用这些模块的文件中,对模块进行引用:

    • JS
     
     
     
    1. var utils = require('./utils');
    2. Page({
    3. onLoad: function () {
    4. utils.logName();
    5. }
    6. });

    模块化编译方式

    编译工具提供依赖分析模式普通编译模式隔离编译模式

    依赖分析模式

    无用文件(不包含图片)不会被打包到产出中,支持 node_modules 的使用。

    在依赖分析编译模式下正确的模块引用的书写方式:

    代码示例

    • JS
     
     
     
    1. // 在app.js中引用util文件夹下的a.js的方式:
    2. require('./util/a.js');
    3. // b.js中引用a.js
    4. require('./a.js');
    5. // 从当前目录到项目根目录下递归寻找node_modules文件夹中是否存在a.js,没有则报错;
    6. require('a.js');

    普通编译模式

    不支持 node_modues 的使用。

    在普通模式下正确的模块引用的书写方式:
    代码示例

    • JS
     
     
     
    1. // 在app.js中引用util文件夹下的a.js的方式:
    2. 1. require('/util/a.js');
    3. 2. require('./util/a.js');
    4. 3. require('util/a.js');

    隔离编译模式

    在普通编译模式的基础上,优化文件生成策略,模块引用有以下限制:

    1. 主包不能引用分包js文件;
    2. 分包之间不能互相引用js文件;
    THE END