# require
引入模块。返回模块通过 module.exports
或 exports
暴露的接口。
需要引入其他分包的模块的时候,可以通过配置 callback
回调函数来异步获取指定模块。异步获取失败的时候,将会触发 error
回调函数。
# 参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
path | string | 是 | 需要引入模块文件相对于当前文件的相对路径,或npm模块名,或npm模块路径。默认不支持绝对路径,可通过配置 resolveAlias 自定义路径映射。 |
callback | function | 否 | 异步加载成功回调函数,该回调函数参数为成功加载的模块。 |
error | function | 否 | 异步加载失败回调函数,该回调函数参数为错误信息和模块名。 |
# require.async 链式调用
可以通过链式调用的方式使用。
require .async('path/to/mod') .then((mod) => { console.log(mod) }) .catch(({ errMsg, mod }) => { console.error(`path: ${mod}, ${errMsg}`) })
# 示例代码
# 同一包内调用
// common.js function sayHello(name) { console.log(`Hello ${name} !`) } function sayGoodbye(name) { console.log(`Goodbye ${name} !`) } module.exports.sayHello = sayHello exports.sayGoodbye = sayGoodbye
var common = require('common.js') Page({ helloMINA: function() { common.sayHello('MINA') }, goodbyeMINA: function() { common.sayGoodbye('MINA') } })
# 跨分包异步调用
// subpackage/common.js 分包 common 文件 export const sayHello = () => console.log("hello")
// pages/index.js 主包页面 let common; require('../../subpackage/common.js', (mod) => { common = mod }, ({ errMsg, mod }) => { console.error(`path: ${mod}, ${errMsg}`) }) Page({ sayHello() { common && common.sayHello() } })