如何使用require引入export default的模块

最近使用mpvue进行微信小程序开发,其中用到了mpvue-entry这个库,按照文档我把app.json改为entry.js,这样做是为了能够把路由配置抽取到多个js文件里配置,但是在引入的时候一直报错。

先看下entry.js文件

// 一开始没加default,后来有文章说加上就可以了,但我加了还是不行
var routes = require('./router').default
var usingCompt = require('./global.json')

module.exports = {
  pages: routes,
  window: {
    backgroundTextStyle: 'dark',
    navigationBarBackgroundColor: '#fff',
    navigationBarTitleText: 'WeChat',
    navigationBarTextStyle: 'black',
    onReachBottomDistance: 50
  },
  networkTimeout: {
    request: 240000
  },
  usingComponents: usingCompt
}

最早这个文件也是es6的写法,但一直不行,后来改成commonjs写法就可以了,现在想把路由抽取出来一个单独文件,而且该文件有对es6写法的utils的引入,所以一直会有问题,除非我直接把所有路由都写在这个commonjs写法的文件里,但又不想那样写,还是想把文件分开管理。

router.js文件代码如下:

import { batchImport } from '@/libs/utils'

// routes是一个数组
let routes = batchImport('./routes', [], 'array')

export default routes

图片描述

感觉应该是export default和require写法混用的原因,但具体要怎么改写还不知道

求指教

阅读 6.5k
2 个回答

试试module.exports=routes

新手上路,请多包涵

可以试一下require("模块名").default