# require
引入模塊。返回模塊通過 module.exports 或 exports 暴露的接口。
需要引入其他分包的模塊的時候,可以通過配置 callback 回調(diào)函數(shù)來異步獲取指定模塊。異步獲取失敗的時候,將會觸發(fā) error 回調(diào)函數(shù)。
# 參數(shù)
| 名稱 | 類型 | 必填 | 說明 |
|---|---|---|---|
| path | string | 是 | 需要引入模塊文件相對于當(dāng)前文件的相對路徑,或npm模塊名,或npm模塊路徑。默認不支持絕對路徑,可通過配置 resolveAlias 自定義路徑映射。 |
| callback | function | 否 | 異步加載成功回調(diào)函數(shù),該回調(diào)函數(shù)參數(shù)為成功加載的模塊。 |
| error | function | 否 | 異步加載失敗回調(diào)函數(shù),該回調(diào)函數(shù)參數(shù)為錯誤信息和模塊名。 |
# require.async 鏈式調(diào)用
可以通過鏈式調(diào)用的方式使用。
require
.async('path/to/mod')
.then((mod) => {
console.log(mod)
})
.catch(({ errMsg, mod }) => {
console.error(`path: ${mod}, ${errMsg}`)
})
# 示例代碼
# 同一包內(nèi)調(diào)用
// 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')
}
})
# 跨分包異步調(diào)用
// 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()
}
})