【微信小程序】引入模块(require、import)和返回模块(module.exports、export)

本文介绍了如何在微信小程序中使用require引入模块,并展示了ES6的export和import语法,包括常量、变量的导出和导入,以及别名的使用。重点讲解了模块管理和接口暴露的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序官方文档上使用require来引入模块

引入模块。返回模块通过 module.exports 或 exports 暴露的接口

引用一下官方例子

// 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')
  }
})

使用es6的export与import返回和引入模块

globalConfig.js

const config = {
  //线上版本号
  version: "1.0.1"
}
export { config }

index.js

import {
  config
} from '../../globalConfig.js'

export除了上面的一种写法还有

  • export写法一
export const config = {
  //线上版本号
  version: "1.0.1"
}
export let func = function(){
  console.log("func")
}
  • export写法二
 const config = {
   //线上版本号
   version: "1.0.1"
 }
 let func = function () {
   console.log("func")
 }
 
 export {
   config,
   func
 }

对应的import

import {
  config,
  func
} from "../../globalConfig.js"
  • 给export或者import的数据起别名
 const config = {
  //线上版本号
  version: "1.0.1"
} 
let func = function(){
  console.log("func")
}
export { config,func as func1}
import {
  config as config1,
  func1
} from "../../globalConfig.js"
### 微信小程序 `SyntaxError: Cannot use import statement outside a module` 错误解决方案 在微信小程序开发过程中,当尝试使用 ES6 的 `import` `export` 语句时可能会遇到此错误。这是因为微信小程序默认不支持这些现代 JavaScript 特性。 #### 使用 CommonJS 模块语法替代 ES6 导入导出 为了兼容微信小程序环境,建议采用 CommonJS 风格的模块导入导出方式: ```javascript // 原始ES6写法 (不可用) import { someFunction } from './utils'; // 替换成CommonJS写法 (可用) const utils = require('./utils'); ``` 对于函数或变量的暴露也应调整为如下形式[^1]: ```javascript // 原始ES6写法 (不可用) export function add(a, b) { return a + b; } // 替换成CommonJS写法 (可用) module.exports.add = function(a, b){ return a+b; }; ``` #### 修改项目配置文件以启用 ECMAScript Modules 支持 如果确实希望继续沿用 ES6 模块特性,则需确认项目的编译工具链已正确设置来处理 ESM 文件。这通常涉及到编辑 `project.config.json` 或其他构建配置项,并确保启用了相应的 Babel 插件用于转换最新的 JS 代码到向后兼容版本[^2]。 另外,在页面 JSON 中指定 `"usingComponents"` 字段可以激活某些场景下的模块加载机制;不过针对本案例中的具体报错情况而言,优先考虑切换至 CommonJS 是更为稳妥的做法。 #### 调整 `.eslintrc.js` 规则适应新变化 随着上述改动实施之后,可能还会面临 ESLint 报警提示不符合预期的情况。此时应当相应更新 linter 设置以便消除不必要的警告信息并保持编码风格一致性: ```json { "parserOptions": { "ecmaVersion": 5, "sourceType": "script" } } ``` 通过以上措施能够有效规避因直接运用标准浏览器端做法而导致的小程序运行期异常现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值